﻿2026-06-19T05:17:21.3864155Z ##[group]Run ./traceable-reqs check --json
2026-06-19T05:17:21.3864479Z [36;1m./traceable-reqs check --json[0m
2026-06-19T05:17:21.3877259Z shell: /usr/bin/bash -e {0}
2026-06-19T05:17:21.3877506Z ##[endgroup]
2026-06-19T05:17:21.4684458Z {
2026-06-19T05:17:21.4684815Z   "schemaVersion": 1,
2026-06-19T05:17:21.4685083Z   "summary": {
2026-06-19T05:17:21.4685329Z     "requirementCount": 256,
2026-06-19T05:17:21.4685597Z     "completeCount": 256,
2026-06-19T05:17:21.4685840Z     "incompleteCount": 0,
2026-06-19T05:17:21.4686145Z     "findingCount": 0
2026-06-19T05:17:21.4686364Z   },
2026-06-19T05:17:21.4686554Z   "requirements": [
2026-06-19T05:17:21.4686755Z     {
2026-06-19T05:17:21.4686955Z       "id": "REQ-API-1",
2026-06-19T05:17:21.4687288Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-19T05:17:21.4687813Z       "requiredStages": [
2026-06-19T05:17:21.4688113Z         "impl",
2026-06-19T05:17:21.4688430Z         "unit",
2026-06-19T05:17:21.4688634Z         "int"
2026-06-19T05:17:21.4688887Z       ],
2026-06-19T05:17:21.4689221Z       "stages": {
2026-06-19T05:17:21.4689430Z         "doc": {
2026-06-19T05:17:21.4689708Z           "complete": false,
2026-06-19T05:17:21.4689975Z           "evidence": []
2026-06-19T05:17:21.4690195Z         },
2026-06-19T05:17:21.4690389Z         "impl": {
2026-06-19T05:17:21.4690623Z           "complete": true,
2026-06-19T05:17:21.4690943Z           "evidence": [
2026-06-19T05:17:21.4691184Z             {
2026-06-19T05:17:21.4691401Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4691721Z               "line": 15
2026-06-19T05:17:21.4691922Z             }
2026-06-19T05:17:21.4692088Z           ]
2026-06-19T05:17:21.4692599Z         },
2026-06-19T05:17:21.4692795Z         "int": {
2026-06-19T05:17:21.4693018Z           "complete": true,
2026-06-19T05:17:21.4693227Z           "evidence": [
2026-06-19T05:17:21.4693420Z             {
2026-06-19T05:17:21.4693627Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.4693901Z               "line": 13
2026-06-19T05:17:21.4694092Z             }
2026-06-19T05:17:21.4694268Z           ]
2026-06-19T05:17:21.4694431Z         },
2026-06-19T05:17:21.4694606Z         "unit": {
2026-06-19T05:17:21.4694789Z           "complete": true,
2026-06-19T05:17:21.4694999Z           "evidence": [
2026-06-19T05:17:21.4695184Z             {
2026-06-19T05:17:21.4695403Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4695770Z               "line": 717
2026-06-19T05:17:21.4696066Z             },
2026-06-19T05:17:21.4696320Z             {
2026-06-19T05:17:21.4696604Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4696957Z               "line": 804
2026-06-19T05:17:21.4697239Z             }
2026-06-19T05:17:21.4697485Z           ]
2026-06-19T05:17:21.4697720Z         }
2026-06-19T05:17:21.4697968Z       }
2026-06-19T05:17:21.4698208Z     },
2026-06-19T05:17:21.4698444Z     {
2026-06-19T05:17:21.4698678Z       "id": "REQ-API-2",
2026-06-19T05:17:21.4699199Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-19T05:17:21.4699728Z       "requiredStages": [
2026-06-19T05:17:21.4700014Z         "impl",
2026-06-19T05:17:21.4700258Z         "unit",
2026-06-19T05:17:21.4700492Z         "int"
2026-06-19T05:17:21.4700740Z       ],
2026-06-19T05:17:21.4700982Z       "stages": {
2026-06-19T05:17:21.4701230Z         "doc": {
2026-06-19T05:17:21.4701512Z           "complete": false,
2026-06-19T05:17:21.4702101Z           "evidence": []
2026-06-19T05:17:21.4702377Z         },
2026-06-19T05:17:21.4702614Z         "impl": {
2026-06-19T05:17:21.4702895Z           "complete": true,
2026-06-19T05:17:21.4703187Z           "evidence": [
2026-06-19T05:17:21.4703458Z             {
2026-06-19T05:17:21.4703750Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:17:21.4704116Z               "line": 17
2026-06-19T05:17:21.4704386Z             },
2026-06-19T05:17:21.4704619Z             {
2026-06-19T05:17:21.4705129Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.4705510Z               "line": 20
2026-06-19T05:17:21.4705782Z             },
2026-06-19T05:17:21.4706035Z             {
2026-06-19T05:17:21.4706321Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.4706698Z               "line": 142
2026-06-19T05:17:21.4706983Z             },
2026-06-19T05:17:21.4707232Z             {
2026-06-19T05:17:21.4707508Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4707899Z               "line": 24
2026-06-19T05:17:21.4708166Z             },
2026-06-19T05:17:21.4708414Z             {
2026-06-19T05:17:21.4708714Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4709139Z               "line": 41
2026-06-19T05:17:21.4709404Z             },
2026-06-19T05:17:21.4709640Z             {
2026-06-19T05:17:21.4709931Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4710302Z               "line": 209
2026-06-19T05:17:21.4710575Z             },
2026-06-19T05:17:21.4710818Z             {
2026-06-19T05:17:21.4711104Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4711480Z               "line": 251
2026-06-19T05:17:21.4711753Z             },
2026-06-19T05:17:21.4711992Z             {
2026-06-19T05:17:21.4712271Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4712641Z               "line": 330
2026-06-19T05:17:21.4712923Z             },
2026-06-19T05:17:21.4713170Z             {
2026-06-19T05:17:21.4713455Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4713819Z               "line": 393
2026-06-19T05:17:21.4714090Z             },
2026-06-19T05:17:21.4714319Z             {
2026-06-19T05:17:21.4714611Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4714979Z               "line": 432
2026-06-19T05:17:21.4715256Z             },
2026-06-19T05:17:21.4715499Z             {
2026-06-19T05:17:21.4715785Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.4716143Z               "line": 17
2026-06-19T05:17:21.4716419Z             },
2026-06-19T05:17:21.4716666Z             {
2026-06-19T05:17:21.4716943Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.4717310Z               "line": 30
2026-06-19T05:17:21.4717576Z             },
2026-06-19T05:17:21.4717835Z             {
2026-06-19T05:17:21.4718111Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.4718473Z               "line": 63
2026-06-19T05:17:21.4718736Z             },
2026-06-19T05:17:21.4719032Z             {
2026-06-19T05:17:21.4719323Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.4719685Z               "line": 77
2026-06-19T05:17:21.4719950Z             }
2026-06-19T05:17:21.4720195Z           ]
2026-06-19T05:17:21.4720439Z         },
2026-06-19T05:17:21.4720692Z         "int": {
2026-06-19T05:17:21.4720959Z           "complete": true,
2026-06-19T05:17:21.4721265Z           "evidence": [
2026-06-19T05:17:21.4721540Z             {
2026-06-19T05:17:21.4721851Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.4722219Z               "line": 14
2026-06-19T05:17:21.4722495Z             },
2026-06-19T05:17:21.4722731Z             {
2026-06-19T05:17:21.4723039Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.4723391Z               "line": 187
2026-06-19T05:17:21.4723668Z             }
2026-06-19T05:17:21.4724069Z           ]
2026-06-19T05:17:21.4724326Z         },
2026-06-19T05:17:21.4724579Z         "unit": {
2026-06-19T05:17:21.4724776Z           "complete": true,
2026-06-19T05:17:21.4725013Z           "evidence": [
2026-06-19T05:17:21.4725308Z             {
2026-06-19T05:17:21.4725601Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:17:21.4725968Z               "line": 82
2026-06-19T05:17:21.4726239Z             },
2026-06-19T05:17:21.4726473Z             {
2026-06-19T05:17:21.4726959Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.4727323Z               "line": 279
2026-06-19T05:17:21.4727609Z             },
2026-06-19T05:17:21.4727842Z             {
2026-06-19T05:17:21.4728132Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4728508Z               "line": 705
2026-06-19T05:17:21.4728789Z             },
2026-06-19T05:17:21.4729109Z             {
2026-06-19T05:17:21.4729414Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4729810Z               "line": 716
2026-06-19T05:17:21.4730029Z             },
2026-06-19T05:17:21.4730192Z             {
2026-06-19T05:17:21.4730386Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4730628Z               "line": 869
2026-06-19T05:17:21.4730808Z             },
2026-06-19T05:17:21.4730980Z             {
2026-06-19T05:17:21.4731176Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4731418Z               "line": 915
2026-06-19T05:17:21.4731614Z             },
2026-06-19T05:17:21.4731786Z             {
2026-06-19T05:17:21.4731976Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.4732215Z               "line": 143
2026-06-19T05:17:21.4732396Z             },
2026-06-19T05:17:21.4732568Z             {
2026-06-19T05:17:21.4732760Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.4732992Z               "line": 187
2026-06-19T05:17:21.4733164Z             }
2026-06-19T05:17:21.4733339Z           ]
2026-06-19T05:17:21.4733500Z         }
2026-06-19T05:17:21.4733689Z       }
2026-06-19T05:17:21.4733857Z     },
2026-06-19T05:17:21.4734009Z     {
2026-06-19T05:17:21.4734172Z       "id": "REQ-API-3",
2026-06-19T05:17:21.4734415Z       "title": "commune/signoff are file-drops, not commands",
2026-06-19T05:17:21.4734697Z       "requiredStages": [
2026-06-19T05:17:21.4734882Z         "impl",
2026-06-19T05:17:21.4735063Z         "unit",
2026-06-19T05:17:21.4735229Z         "int"
2026-06-19T05:17:21.4735398Z       ],
2026-06-19T05:17:21.4735558Z       "stages": {
2026-06-19T05:17:21.4735731Z         "doc": {
2026-06-19T05:17:21.4735906Z           "complete": false,
2026-06-19T05:17:21.4736104Z           "evidence": []
2026-06-19T05:17:21.4736299Z         },
2026-06-19T05:17:21.4736466Z         "impl": {
2026-06-19T05:17:21.4736653Z           "complete": true,
2026-06-19T05:17:21.4736876Z           "evidence": [
2026-06-19T05:17:21.4737058Z             {
2026-06-19T05:17:21.4737258Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.4737501Z               "line": 27
2026-06-19T05:17:21.4737677Z             },
2026-06-19T05:17:21.4737849Z             {
2026-06-19T05:17:21.4738044Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4738298Z               "line": 562
2026-06-19T05:17:21.4738494Z             }
2026-06-19T05:17:21.4738659Z           ]
2026-06-19T05:17:21.4738821Z         },
2026-06-19T05:17:21.4739336Z         "int": {
2026-06-19T05:17:21.4739613Z           "complete": true,
2026-06-19T05:17:21.4739993Z           "evidence": [
2026-06-19T05:17:21.4740260Z             {
2026-06-19T05:17:21.4740519Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.4740913Z               "line": 261
2026-06-19T05:17:21.4741184Z             }
2026-06-19T05:17:21.4741455Z           ]
2026-06-19T05:17:21.4741712Z         },
2026-06-19T05:17:21.4741978Z         "unit": {
2026-06-19T05:17:21.4742298Z           "complete": true,
2026-06-19T05:17:21.4742808Z           "evidence": [
2026-06-19T05:17:21.4766915Z             {
2026-06-19T05:17:21.4767273Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.4767663Z               "line": 280
2026-06-19T05:17:21.4767937Z             },
2026-06-19T05:17:21.4768175Z             {
2026-06-19T05:17:21.4768470Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.4768847Z               "line": 944
2026-06-19T05:17:21.4769200Z             }
2026-06-19T05:17:21.4769644Z           ]
2026-06-19T05:17:21.4769893Z         }
2026-06-19T05:17:21.4770140Z       }
2026-06-19T05:17:21.4770382Z     },
2026-06-19T05:17:21.4770621Z     {
2026-06-19T05:17:21.4770873Z       "id": "REQ-API-4",
2026-06-19T05:17:21.4773526Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
2026-06-19T05:17:21.4775694Z       "requiredStages": [
2026-06-19T05:17:21.4775983Z         "doc",
2026-06-19T05:17:21.4776235Z         "impl",
2026-06-19T05:17:21.4776492Z         "unit"
2026-06-19T05:17:21.4776727Z       ],
2026-06-19T05:17:21.4776975Z       "stages": {
2026-06-19T05:17:21.4777233Z         "doc": {
2026-06-19T05:17:21.4777490Z           "complete": true,
2026-06-19T05:17:21.4777780Z           "evidence": [
2026-06-19T05:17:21.4778051Z             {
2026-06-19T05:17:21.4778303Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.4778627Z               "line": 149
2026-06-19T05:17:21.4778903Z             }
2026-06-19T05:17:21.4779213Z           ]
2026-06-19T05:17:21.4779441Z         },
2026-06-19T05:17:21.4779684Z         "impl": {
2026-06-19T05:17:21.4779927Z           "complete": true,
2026-06-19T05:17:21.4780213Z           "evidence": [
2026-06-19T05:17:21.4780477Z             {
2026-06-19T05:17:21.4780739Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4781090Z               "line": 484
2026-06-19T05:17:21.4781361Z             }
2026-06-19T05:17:21.4781600Z           ]
2026-06-19T05:17:21.4781829Z         },
2026-06-19T05:17:21.4782064Z         "int": {
2026-06-19T05:17:21.4782320Z           "complete": false,
2026-06-19T05:17:21.4782625Z           "evidence": []
2026-06-19T05:17:21.4782902Z         },
2026-06-19T05:17:21.4783135Z         "unit": {
2026-06-19T05:17:21.4783387Z           "complete": true,
2026-06-19T05:17:21.4783676Z           "evidence": [
2026-06-19T05:17:21.4783937Z             {
2026-06-19T05:17:21.4784209Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4784558Z               "line": 657
2026-06-19T05:17:21.4784829Z             },
2026-06-19T05:17:21.4785078Z             {
2026-06-19T05:17:21.4785335Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4785674Z               "line": 681
2026-06-19T05:17:21.4785942Z             },
2026-06-19T05:17:21.4786178Z             {
2026-06-19T05:17:21.4786457Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.4786809Z               "line": 705
2026-06-19T05:17:21.4787091Z             }
2026-06-19T05:17:21.4787335Z           ]
2026-06-19T05:17:21.4787569Z         }
2026-06-19T05:17:21.4787798Z       }
2026-06-19T05:17:21.4788025Z     },
2026-06-19T05:17:21.4788259Z     {
2026-06-19T05:17:21.4788499Z       "id": "REQ-ARCH-1",
2026-06-19T05:17:21.4788835Z       "title": "Many small acyclically-layered crates",
2026-06-19T05:17:21.4789285Z       "requiredStages": [
2026-06-19T05:17:21.4789563Z         "impl"
2026-06-19T05:17:21.4789801Z       ],
2026-06-19T05:17:21.4790026Z       "stages": {
2026-06-19T05:17:21.4790273Z         "doc": {
2026-06-19T05:17:21.4790545Z           "complete": false,
2026-06-19T05:17:21.4791023Z           "evidence": []
2026-06-19T05:17:21.4791290Z         },
2026-06-19T05:17:21.4791531Z         "impl": {
2026-06-19T05:17:21.4791807Z           "complete": true,
2026-06-19T05:17:21.4792099Z           "evidence": [
2026-06-19T05:17:21.4792365Z             {
2026-06-19T05:17:21.4792633Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-19T05:17:21.4792985Z               "line": 18
2026-06-19T05:17:21.4793244Z             },
2026-06-19T05:17:21.4793634Z             {
2026-06-19T05:17:21.4793919Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-19T05:17:21.4794275Z               "line": 12
2026-06-19T05:17:21.4794541Z             },
2026-06-19T05:17:21.4794798Z             {
2026-06-19T05:17:21.4795074Z               "path": "crates/spt-store/src/lib.rs",
2026-06-19T05:17:21.4795437Z               "line": 12
2026-06-19T05:17:21.4795709Z             }
2026-06-19T05:17:21.4795947Z           ]
2026-06-19T05:17:21.4796192Z         },
2026-06-19T05:17:21.4796450Z         "int": {
2026-06-19T05:17:21.4796709Z           "complete": false,
2026-06-19T05:17:21.4797012Z           "evidence": []
2026-06-19T05:17:21.4797341Z         },
2026-06-19T05:17:21.4797513Z         "unit": {
2026-06-19T05:17:21.4797689Z           "complete": false,
2026-06-19T05:17:21.4797885Z           "evidence": []
2026-06-19T05:17:21.4798062Z         }
2026-06-19T05:17:21.4798314Z       }
2026-06-19T05:17:21.4798543Z     },
2026-06-19T05:17:21.4798787Z     {
2026-06-19T05:17:21.4799148Z       "id": "REQ-ARCH-2",
2026-06-19T05:17:21.4799550Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-19T05:17:21.4799995Z       "requiredStages": [
2026-06-19T05:17:21.4800271Z         "impl"
2026-06-19T05:17:21.4800518Z       ],
2026-06-19T05:17:21.4800747Z       "stages": {
2026-06-19T05:17:21.4801010Z         "doc": {
2026-06-19T05:17:21.4801273Z           "complete": false,
2026-06-19T05:17:21.4801578Z           "evidence": []
2026-06-19T05:17:21.4801845Z         },
2026-06-19T05:17:21.4802072Z         "impl": {
2026-06-19T05:17:21.4802330Z           "complete": true,
2026-06-19T05:17:21.4802630Z           "evidence": [
2026-06-19T05:17:21.4802893Z             {
2026-06-19T05:17:21.4803184Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-19T05:17:21.4803574Z               "line": 18
2026-06-19T05:17:21.4803765Z             }
2026-06-19T05:17:21.4803922Z           ]
2026-06-19T05:17:21.4804074Z         },
2026-06-19T05:17:21.4804227Z         "int": {
2026-06-19T05:17:21.4804412Z           "complete": false,
2026-06-19T05:17:21.4804605Z           "evidence": []
2026-06-19T05:17:21.4804772Z         },
2026-06-19T05:17:21.4804925Z         "unit": {
2026-06-19T05:17:21.4805097Z           "complete": false,
2026-06-19T05:17:21.4805277Z           "evidence": []
2026-06-19T05:17:21.4805450Z         }
2026-06-19T05:17:21.4805601Z       }
2026-06-19T05:17:21.4805751Z     },
2026-06-19T05:17:21.4805902Z     {
2026-06-19T05:17:21.4806065Z       "id": "REQ-ARCH-3",
2026-06-19T05:17:21.4806361Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-19T05:17:21.4806685Z       "requiredStages": [
2026-06-19T05:17:21.4806875Z         "impl",
2026-06-19T05:17:21.4807043Z         "unit"
2026-06-19T05:17:21.4807207Z       ],
2026-06-19T05:17:21.4807355Z       "stages": {
2026-06-19T05:17:21.4807520Z         "doc": {
2026-06-19T05:17:21.4807697Z           "complete": false,
2026-06-19T05:17:21.4807886Z           "evidence": []
2026-06-19T05:17:21.4808073Z         },
2026-06-19T05:17:21.4808225Z         "impl": {
2026-06-19T05:17:21.4808402Z           "complete": true,
2026-06-19T05:17:21.4808598Z           "evidence": [
2026-06-19T05:17:21.4808774Z             {
2026-06-19T05:17:21.4809083Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:17:21.4809614Z               "line": 34
2026-06-19T05:17:21.4809855Z             },
2026-06-19T05:17:21.4810039Z             {
2026-06-19T05:17:21.4810254Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:17:21.4810879Z               "line": 41
2026-06-19T05:17:21.4811097Z             }
2026-06-19T05:17:21.4811293Z           ]
2026-06-19T05:17:21.4811485Z         },
2026-06-19T05:17:21.4811675Z         "int": {
2026-06-19T05:17:21.4811894Z           "complete": false,
2026-06-19T05:17:21.4812138Z           "evidence": []
2026-06-19T05:17:21.4812366Z         },
2026-06-19T05:17:21.4812557Z         "unit": {
2026-06-19T05:17:21.4812765Z           "complete": true,
2026-06-19T05:17:21.4813099Z           "evidence": [
2026-06-19T05:17:21.4813304Z             {
2026-06-19T05:17:21.4813534Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:17:21.4813834Z               "line": 51
2026-06-19T05:17:21.4814034Z             },
2026-06-19T05:17:21.4814224Z             {
2026-06-19T05:17:21.4814444Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:17:21.4814722Z               "line": 71
2026-06-19T05:17:21.4814934Z             },
2026-06-19T05:17:21.4815123Z             {
2026-06-19T05:17:21.4815342Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:17:21.4815632Z               "line": 83
2026-06-19T05:17:21.4815847Z             }
2026-06-19T05:17:21.4816038Z           ]
2026-06-19T05:17:21.4816214Z         }
2026-06-19T05:17:21.4816401Z       }
2026-06-19T05:17:21.4816587Z     },
2026-06-19T05:17:21.4816772Z     {
2026-06-19T05:17:21.4816964Z       "id": "REQ-ARCH-4",
2026-06-19T05:17:21.4817298Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-19T05:17:21.4817683Z       "requiredStages": [
2026-06-19T05:17:21.4817906Z         "impl",
2026-06-19T05:17:21.4818104Z         "unit"
2026-06-19T05:17:21.4818291Z       ],
2026-06-19T05:17:21.4818485Z       "stages": {
2026-06-19T05:17:21.4818690Z         "doc": {
2026-06-19T05:17:21.4818896Z           "complete": false,
2026-06-19T05:17:21.4819230Z           "evidence": []
2026-06-19T05:17:21.4819444Z         },
2026-06-19T05:17:21.4819644Z         "impl": {
2026-06-19T05:17:21.4819845Z           "complete": true,
2026-06-19T05:17:21.4820064Z           "evidence": [
2026-06-19T05:17:21.4820273Z             {
2026-06-19T05:17:21.4820501Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4820781Z               "line": 165
2026-06-19T05:17:21.4821004Z             },
2026-06-19T05:17:21.4821195Z             {
2026-06-19T05:17:21.4821415Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4821691Z               "line": 188
2026-06-19T05:17:21.4821867Z             },
2026-06-19T05:17:21.4822030Z             {
2026-06-19T05:17:21.4822221Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4822445Z               "line": 208
2026-06-19T05:17:21.4822616Z             },
2026-06-19T05:17:21.4822765Z             {
2026-06-19T05:17:21.4822960Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4823201Z               "line": 223
2026-06-19T05:17:21.4823393Z             },
2026-06-19T05:17:21.4823549Z             {
2026-06-19T05:17:21.4823740Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4823965Z               "line": 273
2026-06-19T05:17:21.4824141Z             }
2026-06-19T05:17:21.4824294Z           ]
2026-06-19T05:17:21.4824456Z         },
2026-06-19T05:17:21.4824609Z         "int": {
2026-06-19T05:17:21.4824780Z           "complete": false,
2026-06-19T05:17:21.4824981Z           "evidence": []
2026-06-19T05:17:21.4825161Z         },
2026-06-19T05:17:21.4825324Z         "unit": {
2026-06-19T05:17:21.4825494Z           "complete": true,
2026-06-19T05:17:21.4825679Z           "evidence": [
2026-06-19T05:17:21.4825849Z             {
2026-06-19T05:17:21.4826045Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4826289Z               "line": 334
2026-06-19T05:17:21.4826468Z             },
2026-06-19T05:17:21.4826627Z             {
2026-06-19T05:17:21.4826818Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4827156Z               "line": 344
2026-06-19T05:17:21.4827323Z             },
2026-06-19T05:17:21.4827500Z             {
2026-06-19T05:17:21.4827694Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4827937Z               "line": 355
2026-06-19T05:17:21.4828125Z             },
2026-06-19T05:17:21.4828285Z             {
2026-06-19T05:17:21.4828481Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4828706Z               "line": 366
2026-06-19T05:17:21.4829074Z             },
2026-06-19T05:17:21.4829232Z             {
2026-06-19T05:17:21.4829423Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4829637Z               "line": 378
2026-06-19T05:17:21.4829823Z             },
2026-06-19T05:17:21.4829985Z             {
2026-06-19T05:17:21.4830161Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4830392Z               "line": 391
2026-06-19T05:17:21.4830572Z             },
2026-06-19T05:17:21.4830739Z             {
2026-06-19T05:17:21.4830918Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4831141Z               "line": 402
2026-06-19T05:17:21.4831326Z             },
2026-06-19T05:17:21.4831484Z             {
2026-06-19T05:17:21.4831670Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4831898Z               "line": 419
2026-06-19T05:17:21.4832071Z             },
2026-06-19T05:17:21.4832227Z             {
2026-06-19T05:17:21.4832413Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.4832657Z               "line": 547
2026-06-19T05:17:21.4832842Z             }
2026-06-19T05:17:21.4833000Z           ]
2026-06-19T05:17:21.4833157Z         }
2026-06-19T05:17:21.4833306Z       }
2026-06-19T05:17:21.4833462Z     },
2026-06-19T05:17:21.4833616Z     {
2026-06-19T05:17:21.4833776Z       "id": "REQ-CLI-1",
2026-06-19T05:17:21.4834982Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-19T05:17:21.4836159Z       "requiredStages": [
2026-06-19T05:17:21.4836352Z         "impl",
2026-06-19T05:17:21.4836529Z         "unit"
2026-06-19T05:17:21.4836695Z       ],
2026-06-19T05:17:21.4836867Z       "stages": {
2026-06-19T05:17:21.4837043Z         "doc": {
2026-06-19T05:17:21.4837221Z           "complete": false,
2026-06-19T05:17:21.4837421Z           "evidence": []
2026-06-19T05:17:21.4855117Z         },
2026-06-19T05:17:21.4855345Z         "impl": {
2026-06-19T05:17:21.4855535Z           "complete": true,
2026-06-19T05:17:21.4855746Z           "evidence": [
2026-06-19T05:17:21.4855931Z             {
2026-06-19T05:17:21.4856117Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4856370Z               "line": 225
2026-06-19T05:17:21.4856556Z             },
2026-06-19T05:17:21.4856718Z             {
2026-06-19T05:17:21.4856895Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4857122Z               "line": 1086
2026-06-19T05:17:21.4857303Z             },
2026-06-19T05:17:21.4857463Z             {
2026-06-19T05:17:21.4857636Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4857858Z               "line": 1613
2026-06-19T05:17:21.4858045Z             },
2026-06-19T05:17:21.4858203Z             {
2026-06-19T05:17:21.4858374Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4858598Z               "line": 3000
2026-06-19T05:17:21.4858769Z             }
2026-06-19T05:17:21.4858937Z           ]
2026-06-19T05:17:21.4859152Z         },
2026-06-19T05:17:21.4859294Z         "int": {
2026-06-19T05:17:21.4859467Z           "complete": false,
2026-06-19T05:17:21.4859681Z           "evidence": []
2026-06-19T05:17:21.4860013Z         },
2026-06-19T05:17:21.4860165Z         "unit": {
2026-06-19T05:17:21.4860334Z           "complete": true,
2026-06-19T05:17:21.4860521Z           "evidence": [
2026-06-19T05:17:21.4860707Z             {
2026-06-19T05:17:21.4860889Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4861108Z               "line": 7804
2026-06-19T05:17:21.4861283Z             }
2026-06-19T05:17:21.4861437Z           ]
2026-06-19T05:17:21.4861594Z         }
2026-06-19T05:17:21.4861743Z       }
2026-06-19T05:17:21.4862019Z     },
2026-06-19T05:17:21.4862170Z     {
2026-06-19T05:17:21.4862339Z       "id": "REQ-CLI-2",
2026-06-19T05:17:21.4863127Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-19T05:17:21.4863932Z       "requiredStages": [
2026-06-19T05:17:21.4864132Z         "impl",
2026-06-19T05:17:21.4864300Z         "unit"
2026-06-19T05:17:21.4864466Z       ],
2026-06-19T05:17:21.4864624Z       "stages": {
2026-06-19T05:17:21.4864795Z         "doc": {
2026-06-19T05:17:21.4864968Z           "complete": false,
2026-06-19T05:17:21.4865162Z           "evidence": []
2026-06-19T05:17:21.4865334Z         },
2026-06-19T05:17:21.4865489Z         "impl": {
2026-06-19T05:17:21.4865667Z           "complete": true,
2026-06-19T05:17:21.4865866Z           "evidence": [
2026-06-19T05:17:21.4866057Z             {
2026-06-19T05:17:21.4866253Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.4866501Z               "line": 409
2026-06-19T05:17:21.4866677Z             },
2026-06-19T05:17:21.4866840Z             {
2026-06-19T05:17:21.4867035Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:17:21.4867269Z               "line": 97
2026-06-19T05:17:21.4867450Z             },
2026-06-19T05:17:21.4867606Z             {
2026-06-19T05:17:21.4867801Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.4868037Z               "line": 256
2026-06-19T05:17:21.4868210Z             },
2026-06-19T05:17:21.4868371Z             {
2026-06-19T05:17:21.4868544Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4868773Z               "line": 434
2026-06-19T05:17:21.4869009Z             },
2026-06-19T05:17:21.4869168Z             {
2026-06-19T05:17:21.4869344Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4869578Z               "line": 1165
2026-06-19T05:17:21.4869750Z             },
2026-06-19T05:17:21.4869902Z             {
2026-06-19T05:17:21.4870070Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4870283Z               "line": 1851
2026-06-19T05:17:21.4870460Z             },
2026-06-19T05:17:21.4870611Z             {
2026-06-19T05:17:21.4870787Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4871005Z               "line": 1930
2026-06-19T05:17:21.4871195Z             },
2026-06-19T05:17:21.4871349Z             {
2026-06-19T05:17:21.4871524Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4871739Z               "line": 1991
2026-06-19T05:17:21.4871925Z             }
2026-06-19T05:17:21.4872068Z           ]
2026-06-19T05:17:21.4872230Z         },
2026-06-19T05:17:21.4872383Z         "int": {
2026-06-19T05:17:21.4872559Z           "complete": false,
2026-06-19T05:17:21.4872763Z           "evidence": []
2026-06-19T05:17:21.4872937Z         },
2026-06-19T05:17:21.4873106Z         "unit": {
2026-06-19T05:17:21.4873283Z           "complete": true,
2026-06-19T05:17:21.4873476Z           "evidence": [
2026-06-19T05:17:21.4873648Z             {
2026-06-19T05:17:21.4873843Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.4874081Z               "line": 338
2026-06-19T05:17:21.4874268Z             },
2026-06-19T05:17:21.4874429Z             {
2026-06-19T05:17:21.4874602Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4874931Z               "line": 7959
2026-06-19T05:17:21.4875107Z             }
2026-06-19T05:17:21.4875269Z           ]
2026-06-19T05:17:21.4875417Z         }
2026-06-19T05:17:21.4875570Z       }
2026-06-19T05:17:21.4875722Z     },
2026-06-19T05:17:21.4875885Z     {
2026-06-19T05:17:21.4876040Z       "id": "REQ-CLI-3",
2026-06-19T05:17:21.4876818Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-19T05:17:21.4877730Z       "requiredStages": [
2026-06-19T05:17:21.4877914Z         "impl",
2026-06-19T05:17:21.4878078Z         "unit"
2026-06-19T05:17:21.4878228Z       ],
2026-06-19T05:17:21.4878390Z       "stages": {
2026-06-19T05:17:21.4878550Z         "doc": {
2026-06-19T05:17:21.4878727Z           "complete": false,
2026-06-19T05:17:21.4878916Z           "evidence": []
2026-06-19T05:17:21.4879165Z         },
2026-06-19T05:17:21.4879318Z         "impl": {
2026-06-19T05:17:21.4879498Z           "complete": true,
2026-06-19T05:17:21.4879714Z           "evidence": [
2026-06-19T05:17:21.4879899Z             {
2026-06-19T05:17:21.4880081Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4880301Z               "line": 1080
2026-06-19T05:17:21.4880477Z             }
2026-06-19T05:17:21.4880635Z           ]
2026-06-19T05:17:21.4880791Z         },
2026-06-19T05:17:21.4880940Z         "int": {
2026-06-19T05:17:21.4881110Z           "complete": false,
2026-06-19T05:17:21.4881300Z           "evidence": []
2026-06-19T05:17:21.4881483Z         },
2026-06-19T05:17:21.4881637Z         "unit": {
2026-06-19T05:17:21.4881812Z           "complete": true,
2026-06-19T05:17:21.4881999Z           "evidence": [
2026-06-19T05:17:21.4882180Z             {
2026-06-19T05:17:21.4882366Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4882581Z               "line": 7769
2026-06-19T05:17:21.4882761Z             }
2026-06-19T05:17:21.4882929Z           ]
2026-06-19T05:17:21.4883081Z         }
2026-06-19T05:17:21.4883240Z       }
2026-06-19T05:17:21.4883396Z     },
2026-06-19T05:17:21.4883549Z     {
2026-06-19T05:17:21.4883710Z       "id": "REQ-CLI-4",
2026-06-19T05:17:21.4885987Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
2026-06-19T05:17:21.4887835Z       "requiredStages": [],
2026-06-19T05:17:21.4888027Z       "stages": {
2026-06-19T05:17:21.4888198Z         "doc": {
2026-06-19T05:17:21.4888361Z           "complete": false,
2026-06-19T05:17:21.4888555Z           "evidence": []
2026-06-19T05:17:21.4888731Z         },
2026-06-19T05:17:21.4888888Z         "impl": {
2026-06-19T05:17:21.4889129Z           "complete": true,
2026-06-19T05:17:21.4889316Z           "evidence": [
2026-06-19T05:17:21.4889510Z             {
2026-06-19T05:17:21.4889701Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4889940Z               "line": 5535
2026-06-19T05:17:21.4890130Z             }
2026-06-19T05:17:21.4890278Z           ]
2026-06-19T05:17:21.4890435Z         },
2026-06-19T05:17:21.4890589Z         "int": {
2026-06-19T05:17:21.4890764Z           "complete": false,
2026-06-19T05:17:21.4890965Z           "evidence": []
2026-06-19T05:17:21.4891137Z         },
2026-06-19T05:17:21.4891303Z         "unit": {
2026-06-19T05:17:21.4891585Z           "complete": false,
2026-06-19T05:17:21.4891779Z           "evidence": []
2026-06-19T05:17:21.4891963Z         }
2026-06-19T05:17:21.4892115Z       }
2026-06-19T05:17:21.4892282Z     },
2026-06-19T05:17:21.4892445Z     {
2026-06-19T05:17:21.4892621Z       "id": "REQ-CLI-HELP-MARKDOWN",
2026-06-19T05:17:21.4895713Z       "title": "`spt --help` (and every subcommand --help) renders the inline Markdown authored in the clap doc-comments as terminal styling, never as literal markers: `**bold**` → ANSI bold, `` `code` `` → ANSI cyan, `[text](url)` → `text`. The markers are STRIPPED either way — a raw `**` or backtick must NEVER reach the user (the operator-reported v0.12.0 defect: help text reads `**ctrl-b**` and stray backticks verbatim). Color/bold escapes are emitted ONLY when the help is going to a real terminal AND color is not suppressed (NO_COLOR unset · CLICOLOR != 0 · CLICOLOR_FORCE forces on); a pipe / redirect / CI / NO_COLOR falls back to strip-only (clean plaintext, zero escapes) so machine-readable help is byte-identical regardless of marker syntax. Pure transform over the clap-rendered help string at the single run()/bare_invocation chokepoint; preserves pre-existing ANSI (CSI sequences passed through untouched), never spans markers across a newline, leaves unmatched/empty markers literal, and does not alter the help layout. (v0.12.1)",
2026-06-19T05:17:21.4898601Z       "requiredStages": [
2026-06-19T05:17:21.4898796Z         "impl",
2026-06-19T05:17:21.4899035Z         "unit"
2026-06-19T05:17:21.4899198Z       ],
2026-06-19T05:17:21.4899358Z       "stages": {
2026-06-19T05:17:21.4899530Z         "doc": {
2026-06-19T05:17:21.4899704Z           "complete": false,
2026-06-19T05:17:21.4899895Z           "evidence": []
2026-06-19T05:17:21.4900080Z         },
2026-06-19T05:17:21.4900238Z         "impl": {
2026-06-19T05:17:21.4900404Z           "complete": true,
2026-06-19T05:17:21.4900595Z           "evidence": [
2026-06-19T05:17:21.4900768Z             {
2026-06-19T05:17:21.4900967Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4901196Z               "line": 8
2026-06-19T05:17:21.4901373Z             },
2026-06-19T05:17:21.4901525Z             {
2026-06-19T05:17:21.4901717Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4901950Z               "line": 35
2026-06-19T05:17:21.4902131Z             },
2026-06-19T05:17:21.4902286Z             {
2026-06-19T05:17:21.4902471Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4902700Z               "line": 66
2026-06-19T05:17:21.4902890Z             },
2026-06-19T05:17:21.4903053Z             {
2026-06-19T05:17:21.4903242Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4903463Z               "line": 186
2026-06-19T05:17:21.4903644Z             }
2026-06-19T05:17:21.4903801Z           ]
2026-06-19T05:17:21.4903954Z         },
2026-06-19T05:17:21.4904115Z         "int": {
2026-06-19T05:17:21.4904289Z           "complete": false,
2026-06-19T05:17:21.4904493Z           "evidence": []
2026-06-19T05:17:21.4904669Z         },
2026-06-19T05:17:21.4904839Z         "unit": {
2026-06-19T05:17:21.4905010Z           "complete": true,
2026-06-19T05:17:21.4905209Z           "evidence": [
2026-06-19T05:17:21.4905386Z             {
2026-06-19T05:17:21.4905567Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4905795Z               "line": 206
2026-06-19T05:17:21.4905982Z             },
2026-06-19T05:17:21.4906153Z             {
2026-06-19T05:17:21.4906343Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4906569Z               "line": 213
2026-06-19T05:17:21.4906753Z             },
2026-06-19T05:17:21.4906917Z             {
2026-06-19T05:17:21.4907087Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4907312Z               "line": 220
2026-06-19T05:17:21.4907480Z             },
2026-06-19T05:17:21.4907635Z             {
2026-06-19T05:17:21.4907812Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4908141Z               "line": 227
2026-06-19T05:17:21.4908317Z             },
2026-06-19T05:17:21.4908475Z             {
2026-06-19T05:17:21.4908659Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4908893Z               "line": 238
2026-06-19T05:17:21.4909147Z             },
2026-06-19T05:17:21.4909313Z             {
2026-06-19T05:17:21.4909495Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4909725Z               "line": 248
2026-06-19T05:17:21.4910008Z             },
2026-06-19T05:17:21.4910165Z             {
2026-06-19T05:17:21.4910350Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4910583Z               "line": 258
2026-06-19T05:17:21.4910760Z             },
2026-06-19T05:17:21.4910926Z             {
2026-06-19T05:17:21.4911117Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4911333Z               "line": 272
2026-06-19T05:17:21.4911508Z             },
2026-06-19T05:17:21.4911681Z             {
2026-06-19T05:17:21.4911866Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4912094Z               "line": 281
2026-06-19T05:17:21.4912268Z             },
2026-06-19T05:17:21.4912433Z             {
2026-06-19T05:17:21.4912616Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4912851Z               "line": 289
2026-06-19T05:17:21.4913027Z             },
2026-06-19T05:17:21.4913187Z             {
2026-06-19T05:17:21.4913370Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:17:21.4913604Z               "line": 295
2026-06-19T05:17:21.4913784Z             }
2026-06-19T05:17:21.4913937Z           ]
2026-06-19T05:17:21.4914089Z         }
2026-06-19T05:17:21.4914248Z       }
2026-06-19T05:17:21.4914409Z     },
2026-06-19T05:17:21.4914558Z     {
2026-06-19T05:17:21.4914733Z       "id": "REQ-CONSENT-1",
2026-06-19T05:17:21.4915707Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-19T05:17:21.4916708Z       "requiredStages": [
2026-06-19T05:17:21.4916909Z         "impl",
2026-06-19T05:17:21.4917076Z         "unit"
2026-06-19T05:17:21.4917238Z       ],
2026-06-19T05:17:21.4917401Z       "stages": {
2026-06-19T05:17:21.4917571Z         "doc": {
2026-06-19T05:17:21.4917749Z           "complete": false,
2026-06-19T05:17:21.4917948Z           "evidence": []
2026-06-19T05:17:21.4918125Z         },
2026-06-19T05:17:21.4918285Z         "impl": {
2026-06-19T05:17:21.4918478Z           "complete": true,
2026-06-19T05:17:21.4918672Z           "evidence": [
2026-06-19T05:17:21.4918849Z             {
2026-06-19T05:17:21.4919120Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4919374Z               "line": 27
2026-06-19T05:17:21.4919558Z             },
2026-06-19T05:17:21.4919722Z             {
2026-06-19T05:17:21.4919907Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4920150Z               "line": 75
2026-06-19T05:17:21.4920328Z             },
2026-06-19T05:17:21.4920488Z             {
2026-06-19T05:17:21.4920683Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4920920Z               "line": 98
2026-06-19T05:17:21.4921096Z             },
2026-06-19T05:17:21.4921267Z             {
2026-06-19T05:17:21.4921457Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4921697Z               "line": 82
2026-06-19T05:17:21.4921874Z             },
2026-06-19T05:17:21.4922036Z             {
2026-06-19T05:17:21.4922236Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4922478Z               "line": 109
2026-06-19T05:17:21.4922668Z             },
2026-06-19T05:17:21.4922833Z             {
2026-06-19T05:17:21.4923027Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4923374Z               "line": 127
2026-06-19T05:17:21.4923564Z             },
2026-06-19T05:17:21.4923729Z             {
2026-06-19T05:17:21.4923916Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4924159Z               "line": 142
2026-06-19T05:17:21.4924344Z             },
2026-06-19T05:17:21.4924512Z             {
2026-06-19T05:17:21.4924687Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4925030Z               "line": 6905
2026-06-19T05:17:21.4925212Z             }
2026-06-19T05:17:21.4925365Z           ]
2026-06-19T05:17:21.4925526Z         },
2026-06-19T05:17:21.4925685Z         "int": {
2026-06-19T05:17:21.4925860Z           "complete": false,
2026-06-19T05:17:21.4926060Z           "evidence": []
2026-06-19T05:17:21.4926234Z         },
2026-06-19T05:17:21.4926387Z         "unit": {
2026-06-19T05:17:21.4926567Z           "complete": true,
2026-06-19T05:17:21.4926769Z           "evidence": [
2026-06-19T05:17:21.4926963Z             {
2026-06-19T05:17:21.4927159Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4927402Z               "line": 334
2026-06-19T05:17:21.4927588Z             },
2026-06-19T05:17:21.4927746Z             {
2026-06-19T05:17:21.4927941Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4928184Z               "line": 380
2026-06-19T05:17:21.4928366Z             },
2026-06-19T05:17:21.4928542Z             {
2026-06-19T05:17:21.4928746Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4929070Z               "line": 391
2026-06-19T05:17:21.4929247Z             },
2026-06-19T05:17:21.4929418Z             {
2026-06-19T05:17:21.4984035Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4984494Z               "line": 165
2026-06-19T05:17:21.4984714Z             },
2026-06-19T05:17:21.4984900Z             {
2026-06-19T05:17:21.4985119Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4985419Z               "line": 184
2026-06-19T05:17:21.4985602Z             },
2026-06-19T05:17:21.4985767Z             {
2026-06-19T05:17:21.4985982Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:17:21.4986222Z               "line": 204
2026-06-19T05:17:21.4986402Z             },
2026-06-19T05:17:21.4986566Z             {
2026-06-19T05:17:21.4986749Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4986980Z               "line": 8139
2026-06-19T05:17:21.4987166Z             }
2026-06-19T05:17:21.4987328Z           ]
2026-06-19T05:17:21.4987491Z         }
2026-06-19T05:17:21.4987652Z       }
2026-06-19T05:17:21.4987811Z     },
2026-06-19T05:17:21.4987963Z     {
2026-06-19T05:17:21.4988135Z       "id": "REQ-CONSENT-2",
2026-06-19T05:17:21.4989109Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-19T05:17:21.4990082Z       "requiredStages": [
2026-06-19T05:17:21.4990276Z         "impl",
2026-06-19T05:17:21.4990439Z         "unit"
2026-06-19T05:17:21.4990609Z       ],
2026-06-19T05:17:21.4990763Z       "stages": {
2026-06-19T05:17:21.4990934Z         "doc": {
2026-06-19T05:17:21.4991111Z           "complete": false,
2026-06-19T05:17:21.4991307Z           "evidence": []
2026-06-19T05:17:21.4991497Z         },
2026-06-19T05:17:21.4991670Z         "impl": {
2026-06-19T05:17:21.4991850Z           "complete": true,
2026-06-19T05:17:21.4992046Z           "evidence": [
2026-06-19T05:17:21.4992225Z             {
2026-06-19T05:17:21.4992422Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4992665Z               "line": 140
2026-06-19T05:17:21.4992850Z             },
2026-06-19T05:17:21.4993008Z             {
2026-06-19T05:17:21.4993203Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4993766Z               "line": 165
2026-06-19T05:17:21.4993962Z             },
2026-06-19T05:17:21.4994123Z             {
2026-06-19T05:17:21.4994328Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4994571Z               "line": 199
2026-06-19T05:17:21.4994754Z             },
2026-06-19T05:17:21.4994917Z             {
2026-06-19T05:17:21.4995107Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4995470Z               "line": 241
2026-06-19T05:17:21.4995660Z             },
2026-06-19T05:17:21.4995823Z             {
2026-06-19T05:17:21.4996012Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4996242Z               "line": 269
2026-06-19T05:17:21.4996414Z             },
2026-06-19T05:17:21.4996580Z             {
2026-06-19T05:17:21.4996772Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.4997015Z               "line": 300
2026-06-19T05:17:21.4997210Z             },
2026-06-19T05:17:21.4997371Z             {
2026-06-19T05:17:21.4997545Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4997775Z               "line": 6696
2026-06-19T05:17:21.4997965Z             },
2026-06-19T05:17:21.4998127Z             {
2026-06-19T05:17:21.4998298Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.4998527Z               "line": 6754
2026-06-19T05:17:21.4998710Z             }
2026-06-19T05:17:21.4998875Z           ]
2026-06-19T05:17:21.4999109Z         },
2026-06-19T05:17:21.4999271Z         "int": {
2026-06-19T05:17:21.4999443Z           "complete": false,
2026-06-19T05:17:21.4999644Z           "evidence": []
2026-06-19T05:17:21.4999828Z         },
2026-06-19T05:17:21.4999990Z         "unit": {
2026-06-19T05:17:21.5000169Z           "complete": true,
2026-06-19T05:17:21.5000375Z           "evidence": [
2026-06-19T05:17:21.5000545Z             {
2026-06-19T05:17:21.5000742Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.5000994Z               "line": 419
2026-06-19T05:17:21.5001170Z             },
2026-06-19T05:17:21.5001338Z             {
2026-06-19T05:17:21.5001523Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.5001752Z               "line": 436
2026-06-19T05:17:21.5001934Z             },
2026-06-19T05:17:21.5002110Z             {
2026-06-19T05:17:21.5002301Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.5002541Z               "line": 472
2026-06-19T05:17:21.5002728Z             },
2026-06-19T05:17:21.5002901Z             {
2026-06-19T05:17:21.5003095Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.5003330Z               "line": 516
2026-06-19T05:17:21.5003507Z             },
2026-06-19T05:17:21.5003668Z             {
2026-06-19T05:17:21.5003850Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5004073Z               "line": 9419
2026-06-19T05:17:21.5004255Z             },
2026-06-19T05:17:21.5004427Z             {
2026-06-19T05:17:21.5004602Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5004828Z               "line": 9501
2026-06-19T05:17:21.5005012Z             }
2026-06-19T05:17:21.5005173Z           ]
2026-06-19T05:17:21.5005338Z         }
2026-06-19T05:17:21.5005496Z       }
2026-06-19T05:17:21.5005648Z     },
2026-06-19T05:17:21.5005806Z     {
2026-06-19T05:17:21.5005982Z       "id": "REQ-CONSENT-3",
2026-06-19T05:17:21.5008083Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-19T05:17:21.5009933Z       "requiredStages": [
2026-06-19T05:17:21.5010127Z         "doc",
2026-06-19T05:17:21.5010299Z         "impl",
2026-06-19T05:17:21.5010469Z         "unit",
2026-06-19T05:17:21.5010630Z         "int"
2026-06-19T05:17:21.5010786Z       ],
2026-06-19T05:17:21.5010940Z       "stages": {
2026-06-19T05:17:21.5011115Z         "doc": {
2026-06-19T05:17:21.5011297Z           "complete": true,
2026-06-19T05:17:21.5011602Z           "evidence": [
2026-06-19T05:17:21.5011784Z             {
2026-06-19T05:17:21.5011955Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5012170Z               "line": 304
2026-06-19T05:17:21.5012360Z             }
2026-06-19T05:17:21.5012513Z           ]
2026-06-19T05:17:21.5012675Z         },
2026-06-19T05:17:21.5012837Z         "impl": {
2026-06-19T05:17:21.5013013Z           "complete": true,
2026-06-19T05:17:21.5013208Z           "evidence": [
2026-06-19T05:17:21.5013403Z             {
2026-06-19T05:17:21.5013613Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5013852Z               "line": 123
2026-06-19T05:17:21.5014038Z             },
2026-06-19T05:17:21.5014205Z             {
2026-06-19T05:17:21.5014400Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5014648Z               "line": 162
2026-06-19T05:17:21.5014834Z             },
2026-06-19T05:17:21.5014997Z             {
2026-06-19T05:17:21.5015196Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5015439Z               "line": 291
2026-06-19T05:17:21.5015619Z             },
2026-06-19T05:17:21.5015780Z             {
2026-06-19T05:17:21.5015975Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5016232Z               "line": 530
2026-06-19T05:17:21.5016409Z             },
2026-06-19T05:17:21.5016570Z             {
2026-06-19T05:17:21.5016766Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5017052Z               "line": 780
2026-06-19T05:17:21.5017234Z             },
2026-06-19T05:17:21.5017401Z             {
2026-06-19T05:17:21.5017573Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5017815Z               "line": 6822
2026-06-19T05:17:21.5018006Z             }
2026-06-19T05:17:21.5018159Z           ]
2026-06-19T05:17:21.5018326Z         },
2026-06-19T05:17:21.5018486Z         "int": {
2026-06-19T05:17:21.5018666Z           "complete": true,
2026-06-19T05:17:21.5018875Z           "evidence": [
2026-06-19T05:17:21.5019123Z             {
2026-06-19T05:17:21.5019324Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-19T05:17:21.5019576Z               "line": 16
2026-06-19T05:17:21.5019762Z             }
2026-06-19T05:17:21.5019919Z           ]
2026-06-19T05:17:21.5020086Z         },
2026-06-19T05:17:21.5020243Z         "unit": {
2026-06-19T05:17:21.5020421Z           "complete": true,
2026-06-19T05:17:21.5020605Z           "evidence": [
2026-06-19T05:17:21.5020813Z             {
2026-06-19T05:17:21.5021019Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5021265Z               "line": 1019
2026-06-19T05:17:21.5021457Z             },
2026-06-19T05:17:21.5021618Z             {
2026-06-19T05:17:21.5021810Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5022053Z               "line": 1066
2026-06-19T05:17:21.5022228Z             },
2026-06-19T05:17:21.5022397Z             {
2026-06-19T05:17:21.5022605Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5022853Z               "line": 1191
2026-06-19T05:17:21.5023036Z             }
2026-06-19T05:17:21.5023201Z           ]
2026-06-19T05:17:21.5023453Z         }
2026-06-19T05:17:21.5023727Z       }
2026-06-19T05:17:21.5024107Z     },
2026-06-19T05:17:21.5024369Z     {
2026-06-19T05:17:21.5024637Z       "id": "REQ-CONV-1",
2026-06-19T05:17:21.5026275Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-19T05:17:21.5027799Z       "requiredStages": [
2026-06-19T05:17:21.5028252Z         "impl",
2026-06-19T05:17:21.5028510Z         "unit"
2026-06-19T05:17:21.5028743Z       ],
2026-06-19T05:17:21.5029113Z       "stages": {
2026-06-19T05:17:21.5029368Z         "doc": {
2026-06-19T05:17:21.5029674Z           "complete": false,
2026-06-19T05:17:21.5030007Z           "evidence": []
2026-06-19T05:17:21.5030260Z         },
2026-06-19T05:17:21.5030565Z         "impl": {
2026-06-19T05:17:21.5030818Z           "complete": true,
2026-06-19T05:17:21.5031133Z           "evidence": [
2026-06-19T05:17:21.5031420Z             {
2026-06-19T05:17:21.5031714Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5032117Z               "line": 938
2026-06-19T05:17:21.5032379Z             },
2026-06-19T05:17:21.5032670Z             {
2026-06-19T05:17:21.5032966Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.5033305Z               "line": 94
2026-06-19T05:17:21.5033620Z             },
2026-06-19T05:17:21.5033863Z             {
2026-06-19T05:17:21.5034163Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.5034586Z               "line": 345
2026-06-19T05:17:21.5034877Z             },
2026-06-19T05:17:21.5035163Z             {
2026-06-19T05:17:21.5035311Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.5035545Z               "line": 387
2026-06-19T05:17:21.5035691Z             },
2026-06-19T05:17:21.5035792Z             {
2026-06-19T05:17:21.5036035Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.5036156Z               "line": 472
2026-06-19T05:17:21.5036311Z             },
2026-06-19T05:17:21.5036422Z             {
2026-06-19T05:17:21.5036588Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5036792Z               "line": 667
2026-06-19T05:17:21.5036905Z             },
2026-06-19T05:17:21.5037061Z             {
2026-06-19T05:17:21.5037210Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5037352Z               "line": 693
2026-06-19T05:17:21.5037548Z             },
2026-06-19T05:17:21.5037671Z             {
2026-06-19T05:17:21.5037849Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.5037958Z               "line": 369
2026-06-19T05:17:21.5038092Z             },
2026-06-19T05:17:21.5038244Z             {
2026-06-19T05:17:21.5038578Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:17:21.5038731Z               "line": 19
2026-06-19T05:17:21.5038845Z             }
2026-06-19T05:17:21.5039046Z           ]
2026-06-19T05:17:21.5039198Z         },
2026-06-19T05:17:21.5039375Z         "int": {
2026-06-19T05:17:21.5039502Z           "complete": false,
2026-06-19T05:17:21.5039650Z           "evidence": []
2026-06-19T05:17:21.5039781Z         },
2026-06-19T05:17:21.5039933Z         "unit": {
2026-06-19T05:17:21.5040115Z           "complete": true,
2026-06-19T05:17:21.5040229Z           "evidence": [
2026-06-19T05:17:21.5040373Z             {
2026-06-19T05:17:21.5040548Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5040702Z               "line": 1263
2026-06-19T05:17:21.5040878Z             },
2026-06-19T05:17:21.5040988Z             {
2026-06-19T05:17:21.5041163Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:17:21.5041284Z               "line": 108
2026-06-19T05:17:21.5041455Z             },
2026-06-19T05:17:21.5041603Z             {
2026-06-19T05:17:21.5041755Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:17:21.5042017Z               "line": 134
2026-06-19T05:17:21.5042140Z             },
2026-06-19T05:17:21.5042325Z             {
2026-06-19T05:17:21.5042490Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:17:21.5042635Z               "line": 144
2026-06-19T05:17:21.5042781Z             }
2026-06-19T05:17:21.5042907Z           ]
2026-06-19T05:17:21.5043072Z         }
2026-06-19T05:17:21.5043202Z       }
2026-06-19T05:17:21.5043344Z     },
2026-06-19T05:17:21.5043611Z     {
2026-06-19T05:17:21.5043735Z       "id": "REQ-CONV-2",
2026-06-19T05:17:21.5044917Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-19T05:17:21.5045074Z       "requiredStages": [
2026-06-19T05:17:21.5045218Z         "impl",
2026-06-19T05:17:21.5045379Z         "unit"
2026-06-19T05:17:21.5045485Z       ],
2026-06-19T05:17:21.5045899Z       "stages": {
2026-06-19T05:17:21.5046028Z         "doc": {
2026-06-19T05:17:21.5046195Z           "complete": false,
2026-06-19T05:17:21.5046318Z           "evidence": []
2026-06-19T05:17:21.5046466Z         },
2026-06-19T05:17:21.5046638Z         "impl": {
2026-06-19T05:17:21.5046777Z           "complete": true,
2026-06-19T05:17:21.5046953Z           "evidence": [
2026-06-19T05:17:21.5047068Z             {
2026-06-19T05:17:21.5047261Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5047437Z               "line": 409
2026-06-19T05:17:21.5047569Z             },
2026-06-19T05:17:21.5047727Z             {
2026-06-19T05:17:21.5047893Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.5048032Z               "line": 119
2026-06-19T05:17:21.5048137Z             },
2026-06-19T05:17:21.5048342Z             {
2026-06-19T05:17:21.5048537Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5048657Z               "line": 841
2026-06-19T05:17:21.5048804Z             },
2026-06-19T05:17:21.5048900Z             {
2026-06-19T05:17:21.5049220Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5049338Z               "line": 852
2026-06-19T05:17:21.5049491Z             },
2026-06-19T05:17:21.5049630Z             {
2026-06-19T05:17:21.5049772Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5049987Z               "line": 334
2026-06-19T05:17:21.5050109Z             },
2026-06-19T05:17:21.5050243Z             {
2026-06-19T05:17:21.5050403Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5050508Z               "line": 2950
2026-06-19T05:17:21.5050713Z             },
2026-06-19T05:17:21.5050827Z             {
2026-06-19T05:17:21.5050990Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5051118Z               "line": 2966
2026-06-19T05:17:21.5051247Z             },
2026-06-19T05:17:21.5051457Z             {
2026-06-19T05:17:21.5051586Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5051738Z               "line": 3046
2026-06-19T05:17:21.5051853Z             }
2026-06-19T05:17:21.5051981Z           ]
2026-06-19T05:17:21.5052140Z         },
2026-06-19T05:17:21.5052300Z         "int": {
2026-06-19T05:17:21.5052455Z           "complete": false,
2026-06-19T05:17:21.5052582Z           "evidence": []
2026-06-19T05:17:21.5052728Z         },
2026-06-19T05:17:21.5052876Z         "unit": {
2026-06-19T05:17:21.5053046Z           "complete": true,
2026-06-19T05:17:21.5053200Z           "evidence": [
2026-06-19T05:17:21.5053303Z             {
2026-06-19T05:17:21.5053486Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5053641Z               "line": 889
2026-06-19T05:17:21.5053805Z             },
2026-06-19T05:17:21.5054024Z             {
2026-06-19T05:17:21.5054229Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5054358Z               "line": 1014
2026-06-19T05:17:21.5054505Z             },
2026-06-19T05:17:21.5054653Z             {
2026-06-19T05:17:21.5054820Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.5054973Z               "line": 215
2026-06-19T05:17:21.5055088Z             }
2026-06-19T05:17:21.5055249Z           ]
2026-06-19T05:17:21.5055412Z         }
2026-06-19T05:17:21.5055639Z       }
2026-06-19T05:17:21.5055788Z     },
2026-06-19T05:17:21.5055891Z     {
2026-06-19T05:17:21.5056063Z       "id": "REQ-DAEMON-1",
2026-06-19T05:17:21.5056274Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-19T05:17:21.5056445Z       "requiredStages": [
2026-06-19T05:17:21.5056588Z         "impl",
2026-06-19T05:17:21.5056702Z         "unit",
2026-06-19T05:17:21.5056874Z         "int"
2026-06-19T05:17:21.5057008Z       ],
2026-06-19T05:17:21.5057179Z       "stages": {
2026-06-19T05:17:21.5057323Z         "doc": {
2026-06-19T05:17:21.5057441Z           "complete": false,
2026-06-19T05:17:21.5057619Z           "evidence": []
2026-06-19T05:17:21.5057760Z         },
2026-06-19T05:17:21.5058387Z         "impl": {
2026-06-19T05:17:21.5058511Z           "complete": true,
2026-06-19T05:17:21.5058659Z           "evidence": [
2026-06-19T05:17:21.5058821Z             {
2026-06-19T05:17:21.5059078Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5059236Z               "line": 229
2026-06-19T05:17:21.5059350Z             },
2026-06-19T05:17:21.5059494Z             {
2026-06-19T05:17:21.5059617Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5059843Z               "line": 12
2026-06-19T05:17:21.5059984Z             },
2026-06-19T05:17:21.5060095Z             {
2026-06-19T05:17:21.5060270Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5060371Z               "line": 16
2026-06-19T05:17:21.5060594Z             },
2026-06-19T05:17:21.5060737Z             {
2026-06-19T05:17:21.5060883Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5061034Z               "line": 309
2026-06-19T05:17:21.5061130Z             },
2026-06-19T05:17:21.5061339Z             {
2026-06-19T05:17:21.5061488Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5061640Z               "line": 24
2026-06-19T05:17:21.5061779Z             },
2026-06-19T05:17:21.5061888Z             {
2026-06-19T05:17:21.5062113Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5062231Z               "line": 262
2026-06-19T05:17:21.5062376Z             },
2026-06-19T05:17:21.5062479Z             {
2026-06-19T05:17:21.5062661Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5062860Z               "line": 279
2026-06-19T05:17:21.5062976Z             },
2026-06-19T05:17:21.5063109Z             {
2026-06-19T05:17:21.5063260Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5063403Z               "line": 356
2026-06-19T05:17:21.5063644Z             },
2026-06-19T05:17:21.5063750Z             {
2026-06-19T05:17:21.5063921Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5064051Z               "line": 658
2026-06-19T05:17:21.5064178Z             },
2026-06-19T05:17:21.5064332Z             {
2026-06-19T05:17:21.5064521Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-19T05:17:21.5064679Z               "line": 15
2026-06-19T05:17:21.5064803Z             },
2026-06-19T05:17:21.5064933Z             {
2026-06-19T05:17:21.5065118Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5065281Z               "line": 229
2026-06-19T05:17:21.5065433Z             },
2026-06-19T05:17:21.5065538Z             {
2026-06-19T05:17:21.5065690Z               "path": "crates/spt/src/api/live.rs",
2026-06-19T05:17:21.5065834Z               "line": 13
2026-06-19T05:17:21.5066108Z             },
2026-06-19T05:17:21.5066242Z             {
2026-06-19T05:17:21.5066423Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5066557Z               "line": 358
2026-06-19T05:17:21.5066709Z             },
2026-06-19T05:17:21.5066882Z             {
2026-06-19T05:17:21.5067024Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5067177Z               "line": 463
2026-06-19T05:17:21.5067291Z             }
2026-06-19T05:17:21.5067569Z           ]
2026-06-19T05:17:21.5067744Z         },
2026-06-19T05:17:21.5067850Z         "int": {
2026-06-19T05:17:21.5067997Z           "complete": true,
2026-06-19T05:17:21.5068117Z           "evidence": [
2026-06-19T05:17:21.5068282Z             {
2026-06-19T05:17:21.5068544Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-19T05:17:21.5068656Z               "line": 2
2026-06-19T05:17:21.5068804Z             },
2026-06-19T05:17:21.5068905Z             {
2026-06-19T05:17:21.5069271Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-19T05:17:21.5069396Z               "line": 16
2026-06-19T05:17:21.5069539Z             },
2026-06-19T05:17:21.5069681Z             {
2026-06-19T05:17:21.5069839Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-19T05:17:21.5070040Z               "line": 12
2026-06-19T05:17:21.5070167Z             },
2026-06-19T05:17:21.5070311Z             {
2026-06-19T05:17:21.5070501Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-19T05:17:21.5070621Z               "line": 12
2026-06-19T05:17:21.5070802Z             },
2026-06-19T05:17:21.5070926Z             {
2026-06-19T05:17:21.5071126Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:17:21.5071244Z               "line": 44
2026-06-19T05:17:21.5071397Z             }
2026-06-19T05:17:21.5071552Z           ]
2026-06-19T05:17:21.5071681Z         },
2026-06-19T05:17:21.5071838Z         "unit": {
2026-06-19T05:17:21.5071962Z           "complete": true,
2026-06-19T05:17:21.5072129Z           "evidence": [
2026-06-19T05:17:21.5072228Z             {
2026-06-19T05:17:21.5072462Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5072616Z               "line": 285
2026-06-19T05:17:21.5072725Z             },
2026-06-19T05:17:21.5072887Z             {
2026-06-19T05:17:21.5073007Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5073207Z               "line": 293
2026-06-19T05:17:21.5073354Z             },
2026-06-19T05:17:21.5073469Z             {
2026-06-19T05:17:21.5073651Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5082074Z               "line": 309
2026-06-19T05:17:21.5082251Z             },
2026-06-19T05:17:21.5082374Z             {
2026-06-19T05:17:21.5082566Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5082694Z               "line": 317
2026-06-19T05:17:21.5082837Z             },
2026-06-19T05:17:21.5082942Z             {
2026-06-19T05:17:21.5083137Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5083261Z               "line": 659
2026-06-19T05:17:21.5083380Z             },
2026-06-19T05:17:21.5083481Z             {
2026-06-19T05:17:21.5083652Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5083777Z               "line": 729
2026-06-19T05:17:21.5083877Z             },
2026-06-19T05:17:21.5083991Z             {
2026-06-19T05:17:21.5084159Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5084286Z               "line": 1151
2026-06-19T05:17:21.5084409Z             },
2026-06-19T05:17:21.5084519Z             {
2026-06-19T05:17:21.5084688Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5084813Z               "line": 1188
2026-06-19T05:17:21.5084927Z             },
2026-06-19T05:17:21.5085041Z             {
2026-06-19T05:17:21.5085433Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5085565Z               "line": 1211
2026-06-19T05:17:21.5085670Z             },
2026-06-19T05:17:21.5085790Z             {
2026-06-19T05:17:21.5085961Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5086082Z               "line": 1240
2026-06-19T05:17:21.5086195Z             },
2026-06-19T05:17:21.5086314Z             {
2026-06-19T05:17:21.5086495Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5086772Z               "line": 1288
2026-06-19T05:17:21.5086887Z             },
2026-06-19T05:17:21.5086992Z             {
2026-06-19T05:17:21.5087167Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5087286Z               "line": 1331
2026-06-19T05:17:21.5087406Z             },
2026-06-19T05:17:21.5087524Z             {
2026-06-19T05:17:21.5087687Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-19T05:17:21.5087815Z               "line": 106
2026-06-19T05:17:21.5087944Z             },
2026-06-19T05:17:21.5088064Z             {
2026-06-19T05:17:21.5088215Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-19T05:17:21.5088336Z               "line": 132
2026-06-19T05:17:21.5088445Z             },
2026-06-19T05:17:21.5088564Z             {
2026-06-19T05:17:21.5088712Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5088826Z               "line": 504
2026-06-19T05:17:21.5089027Z             }
2026-06-19T05:17:21.5089146Z           ]
2026-06-19T05:17:21.5089262Z         }
2026-06-19T05:17:21.5089384Z       }
2026-06-19T05:17:21.5089488Z     },
2026-06-19T05:17:21.5089597Z     {
2026-06-19T05:17:21.5089729Z       "id": "REQ-DAEMON-2",
2026-06-19T05:17:21.5089944Z       "title": "Broker/brain split for seamless self-update",
2026-06-19T05:17:21.5090072Z       "requiredStages": [
2026-06-19T05:17:21.5090191Z         "impl",
2026-06-19T05:17:21.5090320Z         "unit",
2026-06-19T05:17:21.5090439Z         "int"
2026-06-19T05:17:21.5090564Z       ],
2026-06-19T05:17:21.5090673Z       "stages": {
2026-06-19T05:17:21.5090782Z         "doc": {
2026-06-19T05:17:21.5090912Z           "complete": true,
2026-06-19T05:17:21.5091040Z           "evidence": [
2026-06-19T05:17:21.5091160Z             {
2026-06-19T05:17:21.5091336Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-19T05:17:21.5091455Z               "line": 250
2026-06-19T05:17:21.5091565Z             }
2026-06-19T05:17:21.5091693Z           ]
2026-06-19T05:17:21.5091809Z         },
2026-06-19T05:17:21.5091936Z         "impl": {
2026-06-19T05:17:21.5092066Z           "complete": true,
2026-06-19T05:17:21.5092186Z           "evidence": [
2026-06-19T05:17:21.5092302Z             {
2026-06-19T05:17:21.5092460Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5092592Z               "line": 23
2026-06-19T05:17:21.5092705Z             },
2026-06-19T05:17:21.5092821Z             {
2026-06-19T05:17:21.5092972Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5093102Z               "line": 796
2026-06-19T05:17:21.5093217Z             },
2026-06-19T05:17:21.5093325Z             {
2026-06-19T05:17:21.5093479Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5093602Z               "line": 821
2026-06-19T05:17:21.5093717Z             },
2026-06-19T05:17:21.5093831Z             {
2026-06-19T05:17:21.5093984Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5094118Z               "line": 1057
2026-06-19T05:17:21.5094217Z             },
2026-06-19T05:17:21.5094337Z             {
2026-06-19T05:17:21.5094502Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5094623Z               "line": 32
2026-06-19T05:17:21.5094743Z             },
2026-06-19T05:17:21.5094851Z             {
2026-06-19T05:17:21.5095017Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5095125Z               "line": 550
2026-06-19T05:17:21.5095445Z             },
2026-06-19T05:17:21.5095563Z             {
2026-06-19T05:17:21.5095716Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5095839Z               "line": 1130
2026-06-19T05:17:21.5095954Z             },
2026-06-19T05:17:21.5096069Z             {
2026-06-19T05:17:21.5096235Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5096350Z               "line": 1417
2026-06-19T05:17:21.5096464Z             },
2026-06-19T05:17:21.5096574Z             {
2026-06-19T05:17:21.5096860Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:17:21.5096980Z               "line": 11
2026-06-19T05:17:21.5097079Z             },
2026-06-19T05:17:21.5097194Z             {
2026-06-19T05:17:21.5097346Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5097475Z               "line": 148
2026-06-19T05:17:21.5097586Z             },
2026-06-19T05:17:21.5097694Z             {
2026-06-19T05:17:21.5097846Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5097981Z               "line": 338
2026-06-19T05:17:21.5098089Z             },
2026-06-19T05:17:21.5098194Z             {
2026-06-19T05:17:21.5098338Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5098460Z               "line": 13
2026-06-19T05:17:21.5098576Z             },
2026-06-19T05:17:21.5098686Z             {
2026-06-19T05:17:21.5098848Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5099047Z               "line": 27
2026-06-19T05:17:21.5099168Z             },
2026-06-19T05:17:21.5099277Z             {
2026-06-19T05:17:21.5099434Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5099563Z               "line": 147
2026-06-19T05:17:21.5099677Z             },
2026-06-19T05:17:21.5099787Z             {
2026-06-19T05:17:21.5099944Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5100072Z               "line": 632
2026-06-19T05:17:21.5100196Z             },
2026-06-19T05:17:21.5100308Z             {
2026-06-19T05:17:21.5100480Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5100604Z               "line": 853
2026-06-19T05:17:21.5100703Z             },
2026-06-19T05:17:21.5100814Z             {
2026-06-19T05:17:21.5100980Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5101100Z               "line": 1000
2026-06-19T05:17:21.5101214Z             },
2026-06-19T05:17:21.5101328Z             {
2026-06-19T05:17:21.5101486Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5101619Z               "line": 1089
2026-06-19T05:17:21.5101730Z             },
2026-06-19T05:17:21.5101848Z             {
2026-06-19T05:17:21.5102006Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5102121Z               "line": 1211
2026-06-19T05:17:21.5102230Z             },
2026-06-19T05:17:21.5102340Z             {
2026-06-19T05:17:21.5102511Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:17:21.5102655Z               "line": 10
2026-06-19T05:17:21.5102765Z             }
2026-06-19T05:17:21.5102877Z           ]
2026-06-19T05:17:21.5102972Z         },
2026-06-19T05:17:21.5103091Z         "int": {
2026-06-19T05:17:21.5103217Z           "complete": true,
2026-06-19T05:17:21.5103347Z           "evidence": [
2026-06-19T05:17:21.5103457Z             {
2026-06-19T05:17:21.5103618Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:17:21.5103762Z               "line": 17
2026-06-19T05:17:21.5103875Z             },
2026-06-19T05:17:21.5103996Z             {
2026-06-19T05:17:21.5104171Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:17:21.5104292Z               "line": 90
2026-06-19T05:17:21.5104405Z             },
2026-06-19T05:17:21.5104510Z             {
2026-06-19T05:17:21.5104692Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:17:21.5104797Z               "line": 110
2026-06-19T05:17:21.5105067Z             },
2026-06-19T05:17:21.5105178Z             {
2026-06-19T05:17:21.5105350Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:17:21.5105468Z               "line": 186
2026-06-19T05:17:21.5105582Z             },
2026-06-19T05:17:21.5105700Z             {
2026-06-19T05:17:21.5105871Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:17:21.5105996Z               "line": 309
2026-06-19T05:17:21.5106113Z             },
2026-06-19T05:17:21.5106367Z             {
2026-06-19T05:17:21.5106539Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-19T05:17:21.5106658Z               "line": 128
2026-06-19T05:17:21.5106767Z             },
2026-06-19T05:17:21.5106868Z             {
2026-06-19T05:17:21.5107034Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-19T05:17:21.5107159Z               "line": 59
2026-06-19T05:17:21.5107272Z             }
2026-06-19T05:17:21.5107377Z           ]
2026-06-19T05:17:21.5107493Z         },
2026-06-19T05:17:21.5107615Z         "unit": {
2026-06-19T05:17:21.5107735Z           "complete": true,
2026-06-19T05:17:21.5107860Z           "evidence": [
2026-06-19T05:17:21.5107968Z             {
2026-06-19T05:17:21.5108127Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:17:21.5108240Z               "line": 62
2026-06-19T05:17:21.5108340Z             },
2026-06-19T05:17:21.5108454Z             {
2026-06-19T05:17:21.5108611Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:17:21.5108745Z               "line": 76
2026-06-19T05:17:21.5108860Z             },
2026-06-19T05:17:21.5109065Z             {
2026-06-19T05:17:21.5109532Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:17:21.5109646Z               "line": 88
2026-06-19T05:17:21.5109752Z             },
2026-06-19T05:17:21.5109851Z             {
2026-06-19T05:17:21.5110014Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:17:21.5110133Z               "line": 294
2026-06-19T05:17:21.5110232Z             },
2026-06-19T05:17:21.5110333Z             {
2026-06-19T05:17:21.5110471Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5110575Z               "line": 825
2026-06-19T05:17:21.5110679Z             },
2026-06-19T05:17:21.5110784Z             {
2026-06-19T05:17:21.5110906Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5111002Z               "line": 833
2026-06-19T05:17:21.5111103Z             },
2026-06-19T05:17:21.5111202Z             {
2026-06-19T05:17:21.5111326Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5111422Z               "line": 850
2026-06-19T05:17:21.5111521Z             },
2026-06-19T05:17:21.5111631Z             {
2026-06-19T05:17:21.5111756Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5111860Z               "line": 926
2026-06-19T05:17:21.5111956Z             },
2026-06-19T05:17:21.5112056Z             {
2026-06-19T05:17:21.5112203Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5112319Z               "line": 1282
2026-06-19T05:17:21.5112423Z             },
2026-06-19T05:17:21.5112522Z             {
2026-06-19T05:17:21.5112657Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5112756Z               "line": 1294
2026-06-19T05:17:21.5112861Z             },
2026-06-19T05:17:21.5112948Z             {
2026-06-19T05:17:21.5113099Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:17:21.5113206Z               "line": 110
2026-06-19T05:17:21.5113306Z             },
2026-06-19T05:17:21.5113405Z             {
2026-06-19T05:17:21.5113547Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:17:21.5113660Z               "line": 144
2026-06-19T05:17:21.5113754Z             }
2026-06-19T05:17:21.5113859Z           ]
2026-06-19T05:17:21.5113960Z         }
2026-06-19T05:17:21.5114055Z       }
2026-06-19T05:17:21.5114160Z     },
2026-06-19T05:17:21.5114426Z     {
2026-06-19T05:17:21.5114551Z       "id": "REQ-DAEMON-3",
2026-06-19T05:17:21.5114741Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-19T05:17:21.5114861Z       "requiredStages": [
2026-06-19T05:17:21.5114961Z         "impl",
2026-06-19T05:17:21.5115061Z         "unit",
2026-06-19T05:17:21.5115162Z         "int"
2026-06-19T05:17:21.5115262Z       ],
2026-06-19T05:17:21.5115366Z       "stages": {
2026-06-19T05:17:21.5115462Z         "doc": {
2026-06-19T05:17:21.5115700Z           "complete": false,
2026-06-19T05:17:21.5115806Z           "evidence": []
2026-06-19T05:17:21.5115896Z         },
2026-06-19T05:17:21.5116009Z         "impl": {
2026-06-19T05:17:21.5116123Z           "complete": true,
2026-06-19T05:17:21.5116237Z           "evidence": [
2026-06-19T05:17:21.5116326Z             {
2026-06-19T05:17:21.5116469Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5116580Z               "line": 14
2026-06-19T05:17:21.5116683Z             },
2026-06-19T05:17:21.5116789Z             {
2026-06-19T05:17:21.5116936Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:17:21.5117036Z               "line": 11
2026-06-19T05:17:21.5117133Z             },
2026-06-19T05:17:21.5117242Z             {
2026-06-19T05:17:21.5117375Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.5117485Z               "line": 305
2026-06-19T05:17:21.5117585Z             },
2026-06-19T05:17:21.5117680Z             {
2026-06-19T05:17:21.5117819Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5117923Z               "line": 1849
2026-06-19T05:17:21.5118014Z             },
2026-06-19T05:17:21.5118115Z             {
2026-06-19T05:17:21.5118238Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5118344Z               "line": 4111
2026-06-19T05:17:21.5118444Z             },
2026-06-19T05:17:21.5118543Z             {
2026-06-19T05:17:21.5118664Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5118773Z               "line": 4132
2026-06-19T05:17:21.5118876Z             }
2026-06-19T05:17:21.5119048Z           ]
2026-06-19T05:17:21.5119148Z         },
2026-06-19T05:17:21.5119252Z         "int": {
2026-06-19T05:17:21.5119363Z           "complete": true,
2026-06-19T05:17:21.5119458Z           "evidence": [
2026-06-19T05:17:21.5119562Z             {
2026-06-19T05:17:21.5119706Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.5119810Z               "line": 49
2026-06-19T05:17:21.5119915Z             },
2026-06-19T05:17:21.5120021Z             {
2026-06-19T05:17:21.5120153Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.5120249Z               "line": 487
2026-06-19T05:17:21.5120355Z             }
2026-06-19T05:17:21.5120450Z           ]
2026-06-19T05:17:21.5120549Z         },
2026-06-19T05:17:21.5120646Z         "unit": {
2026-06-19T05:17:21.5120749Z           "complete": true,
2026-06-19T05:17:21.5120864Z           "evidence": [
2026-06-19T05:17:21.5120961Z             {
2026-06-19T05:17:21.5121107Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5121206Z               "line": 1435
2026-06-19T05:17:21.5121306Z             },
2026-06-19T05:17:21.5121409Z             {
2026-06-19T05:17:21.5121518Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5121629Z               "line": 10503
2026-06-19T05:17:21.5121719Z             }
2026-06-19T05:17:21.5121804Z           ]
2026-06-19T05:17:21.5121891Z         }
2026-06-19T05:17:21.5121973Z       }
2026-06-19T05:17:21.5122053Z     },
2026-06-19T05:17:21.5122138Z     {
2026-06-19T05:17:21.5122235Z       "id": "REQ-DAEMON-4",
2026-06-19T05:17:21.5122358Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-19T05:17:21.5122448Z       "requiredStages": [
2026-06-19T05:17:21.5122536Z         "impl",
2026-06-19T05:17:21.5122616Z         "unit",
2026-06-19T05:17:21.5122711Z         "int"
2026-06-19T05:17:21.5122792Z       ],
2026-06-19T05:17:21.5122988Z       "stages": {
2026-06-19T05:17:21.5123064Z         "doc": {
2026-06-19T05:17:21.5123175Z           "complete": false,
2026-06-19T05:17:21.5123264Z           "evidence": []
2026-06-19T05:17:21.5123350Z         },
2026-06-19T05:17:21.5123436Z         "impl": {
2026-06-19T05:17:21.5123527Z           "complete": true,
2026-06-19T05:17:21.5123621Z           "evidence": [
2026-06-19T05:17:21.5123703Z             {
2026-06-19T05:17:21.5123828Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5124021Z               "line": 464
2026-06-19T05:17:21.5124102Z             },
2026-06-19T05:17:21.5124192Z             {
2026-06-19T05:17:21.5124310Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5124400Z               "line": 529
2026-06-19T05:17:21.5124486Z             },
2026-06-19T05:17:21.5124577Z             {
2026-06-19T05:17:21.5124695Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5124787Z               "line": 551
2026-06-19T05:17:21.5124882Z             }
2026-06-19T05:17:21.5124958Z           ]
2026-06-19T05:17:21.5125044Z         },
2026-06-19T05:17:21.5125130Z         "int": {
2026-06-19T05:17:21.5125226Z           "complete": true,
2026-06-19T05:17:21.5125311Z           "evidence": [
2026-06-19T05:17:21.5125392Z             {
2026-06-19T05:17:21.5125521Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-19T05:17:21.5125607Z               "line": 42
2026-06-19T05:17:21.5125702Z             }
2026-06-19T05:17:21.5125779Z           ]
2026-06-19T05:17:21.5125860Z         },
2026-06-19T05:17:21.5125950Z         "unit": {
2026-06-19T05:17:21.5126047Z           "complete": true,
2026-06-19T05:17:21.5126141Z           "evidence": [
2026-06-19T05:17:21.5126226Z             {
2026-06-19T05:17:21.5126342Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5126437Z               "line": 428
2026-06-19T05:17:21.5126522Z             },
2026-06-19T05:17:21.5126607Z             {
2026-06-19T05:17:21.5126731Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5126829Z               "line": 957
2026-06-19T05:17:21.5126909Z             },
2026-06-19T05:17:21.5126991Z             {
2026-06-19T05:17:21.5127116Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5127210Z               "line": 1027
2026-06-19T05:17:21.5127286Z             },
2026-06-19T05:17:21.5127373Z             {
2026-06-19T05:17:21.5127497Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5127587Z               "line": 1057
2026-06-19T05:17:21.5127669Z             },
2026-06-19T05:17:21.5127759Z             {
2026-06-19T05:17:21.5127872Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5127969Z               "line": 1090
2026-06-19T05:17:21.5128055Z             }
2026-06-19T05:17:21.5128145Z           ]
2026-06-19T05:17:21.5128216Z         }
2026-06-19T05:17:21.5128313Z       }
2026-06-19T05:17:21.5128402Z     },
2026-06-19T05:17:21.5128479Z     {
2026-06-19T05:17:21.5128584Z       "id": "REQ-DAEMON-5",
2026-06-19T05:17:21.5130023Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-19T05:17:21.5130137Z       "requiredStages": [
2026-06-19T05:17:21.5130224Z         "impl",
2026-06-19T05:17:21.5130304Z         "unit"
2026-06-19T05:17:21.5130394Z       ],
2026-06-19T05:17:21.5130475Z       "stages": {
2026-06-19T05:17:21.5130557Z         "doc": {
2026-06-19T05:17:21.5130656Z           "complete": false,
2026-06-19T05:17:21.5130756Z           "evidence": []
2026-06-19T05:17:21.5130839Z         },
2026-06-19T05:17:21.5131057Z         "impl": {
2026-06-19T05:17:21.5131154Z           "complete": true,
2026-06-19T05:17:21.5131235Z           "evidence": [
2026-06-19T05:17:21.5131309Z             {
2026-06-19T05:17:21.5131443Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5131540Z               "line": 476
2026-06-19T05:17:21.5131624Z             },
2026-06-19T05:17:21.5131705Z             {
2026-06-19T05:17:21.5131819Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5132012Z               "line": 769
2026-06-19T05:17:21.5132088Z             },
2026-06-19T05:17:21.5132175Z             {
2026-06-19T05:17:21.5132289Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5132383Z               "line": 782
2026-06-19T05:17:21.5132461Z             },
2026-06-19T05:17:21.5132547Z             {
2026-06-19T05:17:21.5132656Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5132752Z               "line": 800
2026-06-19T05:17:21.5132842Z             },
2026-06-19T05:17:21.5132928Z             {
2026-06-19T05:17:21.5133057Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5133148Z               "line": 841
2026-06-19T05:17:21.5133233Z             }
2026-06-19T05:17:21.5133309Z           ]
2026-06-19T05:17:21.5133395Z         },
2026-06-19T05:17:21.5133481Z         "int": {
2026-06-19T05:17:21.5133581Z           "complete": false,
2026-06-19T05:17:21.5133671Z           "evidence": []
2026-06-19T05:17:21.5133764Z         },
2026-06-19T05:17:21.5133857Z         "unit": {
2026-06-19T05:17:21.5133943Z           "complete": true,
2026-06-19T05:17:21.5134035Z           "evidence": [
2026-06-19T05:17:21.5134125Z             {
2026-06-19T05:17:21.5134244Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5134331Z               "line": 1189
2026-06-19T05:17:21.5134412Z             },
2026-06-19T05:17:21.5134496Z             {
2026-06-19T05:17:21.5134614Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5134715Z               "line": 1213
2026-06-19T05:17:21.5134799Z             },
2026-06-19T05:17:21.5134889Z             {
2026-06-19T05:17:21.5135008Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5135095Z               "line": 1239
2026-06-19T05:17:21.5135185Z             }
2026-06-19T05:17:21.5135270Z           ]
2026-06-19T05:17:21.5135352Z         }
2026-06-19T05:17:21.5135428Z       }
2026-06-19T05:17:21.5135513Z     },
2026-06-19T05:17:21.5135589Z     {
2026-06-19T05:17:21.5135695Z       "id": "REQ-DAEMON-6",
2026-06-19T05:17:21.5137599Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-19T05:17:21.5137709Z       "requiredStages": [
2026-06-19T05:17:21.5137793Z         "impl",
2026-06-19T05:17:21.5137885Z         "unit"
2026-06-19T05:17:21.5137962Z       ],
2026-06-19T05:17:21.5138052Z       "stages": {
2026-06-19T05:17:21.5138142Z         "doc": {
2026-06-19T05:17:21.5138243Z           "complete": false,
2026-06-19T05:17:21.5138333Z           "evidence": []
2026-06-19T05:17:21.5138414Z         },
2026-06-19T05:17:21.5138505Z         "impl": {
2026-06-19T05:17:21.5138596Z           "complete": true,
2026-06-19T05:17:21.5138686Z           "evidence": [
2026-06-19T05:17:21.5138771Z             {
2026-06-19T05:17:21.5138906Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5139178Z               "line": 490
2026-06-19T05:17:21.5139258Z             },
2026-06-19T05:17:21.5139344Z             {
2026-06-19T05:17:21.5139449Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5139536Z               "line": 521
2026-06-19T05:17:21.5139620Z             },
2026-06-19T05:17:21.5139702Z             {
2026-06-19T05:17:21.5139822Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5139907Z               "line": 55
2026-06-19T05:17:21.5140086Z             },
2026-06-19T05:17:21.5140168Z             {
2026-06-19T05:17:21.5140287Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5140372Z               "line": 70
2026-06-19T05:17:21.5140459Z             },
2026-06-19T05:17:21.5140540Z             {
2026-06-19T05:17:21.5140644Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5140740Z               "line": 1903
2026-06-19T05:17:21.5140817Z             },
2026-06-19T05:17:21.5140898Z             {
2026-06-19T05:17:21.5141021Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5141103Z               "line": 1929
2026-06-19T05:17:21.5141188Z             }
2026-06-19T05:17:21.5141274Z           ]
2026-06-19T05:17:21.5141355Z         },
2026-06-19T05:17:21.5141437Z         "int": {
2026-06-19T05:17:21.5141531Z           "complete": false,
2026-06-19T05:17:21.5141622Z           "evidence": []
2026-06-19T05:17:21.5141704Z         },
2026-06-19T05:17:21.5141790Z         "unit": {
2026-06-19T05:17:21.5141879Z           "complete": true,
2026-06-19T05:17:21.5141975Z           "evidence": [
2026-06-19T05:17:21.5142057Z             {
2026-06-19T05:17:21.5142175Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5142275Z               "line": 288
2026-06-19T05:17:21.5142356Z             },
2026-06-19T05:17:21.5142441Z             {
2026-06-19T05:17:21.5142563Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5142663Z               "line": 299
2026-06-19T05:17:21.5142745Z             },
2026-06-19T05:17:21.5142830Z             {
2026-06-19T05:17:21.5142944Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5143035Z               "line": 325
2026-06-19T05:17:21.5143126Z             },
2026-06-19T05:17:21.5143206Z             {
2026-06-19T05:17:21.5143331Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5143426Z               "line": 351
2026-06-19T05:17:21.5143507Z             }
2026-06-19T05:17:21.5143607Z           ]
2026-06-19T05:17:21.5143680Z         }
2026-06-19T05:17:21.5143765Z       }
2026-06-19T05:17:21.5143836Z     },
2026-06-19T05:17:21.5143921Z     {
2026-06-19T05:17:21.5144013Z       "id": "REQ-DAEMON-7",
2026-06-19T05:17:21.5145359Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-19T05:17:21.5145468Z       "requiredStages": [
2026-06-19T05:17:21.5145554Z         "impl",
2026-06-19T05:17:21.5145636Z         "unit"
2026-06-19T05:17:21.5145721Z       ],
2026-06-19T05:17:21.5145816Z       "stages": {
2026-06-19T05:17:21.5145908Z         "doc": {
2026-06-19T05:17:21.5146012Z           "complete": false,
2026-06-19T05:17:21.5146107Z           "evidence": []
2026-06-19T05:17:21.5146193Z         },
2026-06-19T05:17:21.5146279Z         "impl": {
2026-06-19T05:17:21.5146369Z           "complete": true,
2026-06-19T05:17:21.5146455Z           "evidence": [
2026-06-19T05:17:21.5146547Z             {
2026-06-19T05:17:21.5146651Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5146736Z               "line": 540
2026-06-19T05:17:21.5146918Z             },
2026-06-19T05:17:21.5147008Z             {
2026-06-19T05:17:21.5147133Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5147210Z               "line": 610
2026-06-19T05:17:21.5147299Z             },
2026-06-19T05:17:21.5147385Z             {
2026-06-19T05:17:21.5147501Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5147586Z               "line": 89
2026-06-19T05:17:21.5147675Z             },
2026-06-19T05:17:21.5147760Z             {
2026-06-19T05:17:21.5147931Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5148020Z               "line": 1850
2026-06-19T05:17:21.5148101Z             }
2026-06-19T05:17:21.5148188Z           ]
2026-06-19T05:17:21.5148269Z         },
2026-06-19T05:17:21.5148349Z         "int": {
2026-06-19T05:17:21.5148445Z           "complete": false,
2026-06-19T05:17:21.5148546Z           "evidence": []
2026-06-19T05:17:21.5148631Z         },
2026-06-19T05:17:21.5148707Z         "unit": {
2026-06-19T05:17:21.5148813Z           "complete": true,
2026-06-19T05:17:21.5148903Z           "evidence": [
2026-06-19T05:17:21.5149313Z             {
2026-06-19T05:17:21.5149438Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5149527Z               "line": 314
2026-06-19T05:17:21.5149618Z             },
2026-06-19T05:17:21.5149699Z             {
2026-06-19T05:17:21.5149818Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5149909Z               "line": 7959
2026-06-19T05:17:21.5150010Z             }
2026-06-19T05:17:21.5150105Z           ]
2026-06-19T05:17:21.5150218Z         }
2026-06-19T05:17:21.5150310Z       }
2026-06-19T05:17:21.5150387Z     },
2026-06-19T05:17:21.5150476Z     {
2026-06-19T05:17:21.5150565Z       "id": "REQ-DAEMON-8",
2026-06-19T05:17:21.5151505Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-19T05:17:21.5151619Z       "requiredStages": [
2026-06-19T05:17:21.5151706Z         "impl",
2026-06-19T05:17:21.5151806Z         "unit"
2026-06-19T05:17:21.5151886Z       ],
2026-06-19T05:17:21.5151983Z       "stages": {
2026-06-19T05:17:21.5152064Z         "doc": {
2026-06-19T05:17:21.5152168Z           "complete": false,
2026-06-19T05:17:21.5152249Z           "evidence": []
2026-06-19T05:17:21.5152345Z         },
2026-06-19T05:17:21.5152439Z         "impl": {
2026-06-19T05:17:21.5152530Z           "complete": true,
2026-06-19T05:17:21.5152622Z           "evidence": [
2026-06-19T05:17:21.5152708Z             {
2026-06-19T05:17:21.5152835Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5152935Z               "line": 440
2026-06-19T05:17:21.5153015Z             },
2026-06-19T05:17:21.5153104Z             {
2026-06-19T05:17:21.5153213Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5153310Z               "line": 56
2026-06-19T05:17:21.5153390Z             }
2026-06-19T05:17:21.5153480Z           ]
2026-06-19T05:17:21.5153571Z         },
2026-06-19T05:17:21.5153657Z         "int": {
2026-06-19T05:17:21.5153757Z           "complete": false,
2026-06-19T05:17:21.5153842Z           "evidence": []
2026-06-19T05:17:21.5153930Z         },
2026-06-19T05:17:21.5154005Z         "unit": {
2026-06-19T05:17:21.5154095Z           "complete": true,
2026-06-19T05:17:21.5154192Z           "evidence": [
2026-06-19T05:17:21.5154273Z             {
2026-06-19T05:17:21.5154396Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5154477Z               "line": 288
2026-06-19T05:17:21.5154559Z             },
2026-06-19T05:17:21.5154639Z             {
2026-06-19T05:17:21.5154753Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:17:21.5168655Z               "line": 325
2026-06-19T05:17:21.5168752Z             }
2026-06-19T05:17:21.5169136Z           ]
2026-06-19T05:17:21.5169222Z         }
2026-06-19T05:17:21.5169313Z       }
2026-06-19T05:17:21.5169394Z     },
2026-06-19T05:17:21.5169474Z     {
2026-06-19T05:17:21.5169580Z       "id": "REQ-DAEMON-9",
2026-06-19T05:17:21.5174290Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-19T05:17:21.5174595Z       "requiredStages": [
2026-06-19T05:17:21.5174682Z         "impl",
2026-06-19T05:17:21.5174764Z         "unit"
2026-06-19T05:17:21.5174839Z       ],
2026-06-19T05:17:21.5174924Z       "stages": {
2026-06-19T05:17:21.5175002Z         "doc": {
2026-06-19T05:17:21.5175102Z           "complete": false,
2026-06-19T05:17:21.5175182Z           "evidence": []
2026-06-19T05:17:21.5175273Z         },
2026-06-19T05:17:21.5175364Z         "impl": {
2026-06-19T05:17:21.5175474Z           "complete": true,
2026-06-19T05:17:21.5175588Z           "evidence": [
2026-06-19T05:17:21.5175674Z             {
2026-06-19T05:17:21.5175812Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5175907Z               "line": 276
2026-06-19T05:17:21.5175994Z             },
2026-06-19T05:17:21.5176074Z             {
2026-06-19T05:17:21.5176207Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5176304Z               "line": 601
2026-06-19T05:17:21.5176385Z             },
2026-06-19T05:17:21.5176465Z             {
2026-06-19T05:17:21.5176576Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5176672Z               "line": 192
2026-06-19T05:17:21.5176756Z             },
2026-06-19T05:17:21.5176836Z             {
2026-06-19T05:17:21.5176950Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5177031Z               "line": 339
2026-06-19T05:17:21.5177120Z             },
2026-06-19T05:17:21.5177200Z             {
2026-06-19T05:17:21.5177316Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5180978Z               "line": 376
2026-06-19T05:17:21.5181089Z             },
2026-06-19T05:17:21.5181179Z             {
2026-06-19T05:17:21.5181293Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5181395Z               "line": 1958
2026-06-19T05:17:21.5181480Z             }
2026-06-19T05:17:21.5181560Z           ]
2026-06-19T05:17:21.5181656Z         },
2026-06-19T05:17:21.5181743Z         "int": {
2026-06-19T05:17:21.5181846Z           "complete": false,
2026-06-19T05:17:21.5181932Z           "evidence": []
2026-06-19T05:17:21.5182020Z         },
2026-06-19T05:17:21.5182105Z         "unit": {
2026-06-19T05:17:21.5182198Z           "complete": true,
2026-06-19T05:17:21.5182284Z           "evidence": [
2026-06-19T05:17:21.5182375Z             {
2026-06-19T05:17:21.5182509Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5182594Z               "line": 1083
2026-06-19T05:17:21.5182685Z             },
2026-06-19T05:17:21.5182767Z             {
2026-06-19T05:17:21.5182885Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5182981Z               "line": 10368
2026-06-19T05:17:21.5183062Z             }
2026-06-19T05:17:21.5183143Z           ]
2026-06-19T05:17:21.5183223Z         }
2026-06-19T05:17:21.5183310Z       }
2026-06-19T05:17:21.5183386Z     },
2026-06-19T05:17:21.5183620Z     {
2026-06-19T05:17:21.5183734Z       "id": "REQ-DOCS-1",
2026-06-19T05:17:21.5183940Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-19T05:17:21.5184035Z       "requiredStages": [
2026-06-19T05:17:21.5184120Z         "doc",
2026-06-19T05:17:21.5184206Z         "impl"
2026-06-19T05:17:21.5184288Z       ],
2026-06-19T05:17:21.5184373Z       "stages": {
2026-06-19T05:17:21.5184458Z         "doc": {
2026-06-19T05:17:21.5184548Z           "complete": true,
2026-06-19T05:17:21.5184747Z           "evidence": [
2026-06-19T05:17:21.5184827Z             {
2026-06-19T05:17:21.5184942Z               "path": "docs-site/src/index.md",
2026-06-19T05:17:21.5185024Z               "line": 50
2026-06-19T05:17:21.5185104Z             }
2026-06-19T05:17:21.5185179Z           ]
2026-06-19T05:17:21.5185262Z         },
2026-06-19T05:17:21.5185352Z         "impl": {
2026-06-19T05:17:21.5185433Z           "complete": true,
2026-06-19T05:17:21.5185518Z           "evidence": [
2026-06-19T05:17:21.5185600Z             {
2026-06-19T05:17:21.5185733Z               "path": ".github/workflows/docs-publish.yml",
2026-06-19T05:17:21.5185818Z               "line": 12
2026-06-19T05:17:21.5185910Z             },
2026-06-19T05:17:21.5186001Z             {
2026-06-19T05:17:21.5186110Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.5186196Z               "line": 14
2026-06-19T05:17:21.5186277Z             }
2026-06-19T05:17:21.5186363Z           ]
2026-06-19T05:17:21.5186453Z         },
2026-06-19T05:17:21.5186540Z         "int": {
2026-06-19T05:17:21.5186630Z           "complete": false,
2026-06-19T05:17:21.5186721Z           "evidence": []
2026-06-19T05:17:21.5186811Z         },
2026-06-19T05:17:21.5186888Z         "unit": {
2026-06-19T05:17:21.5186987Z           "complete": false,
2026-06-19T05:17:21.5187078Z           "evidence": []
2026-06-19T05:17:21.5187155Z         }
2026-06-19T05:17:21.5187236Z       }
2026-06-19T05:17:21.5187325Z     },
2026-06-19T05:17:21.5187410Z     {
2026-06-19T05:17:21.5187497Z       "id": "REQ-DOCS-2",
2026-06-19T05:17:21.5187666Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-19T05:17:21.5187751Z       "requiredStages": [
2026-06-19T05:17:21.5187842Z         "doc",
2026-06-19T05:17:21.5187919Z         "int"
2026-06-19T05:17:21.5187999Z       ],
2026-06-19T05:17:21.5188094Z       "stages": {
2026-06-19T05:17:21.5188172Z         "doc": {
2026-06-19T05:17:21.5188272Z           "complete": true,
2026-06-19T05:17:21.5188371Z           "evidence": [
2026-06-19T05:17:21.5188453Z             {
2026-06-19T05:17:21.5188624Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-19T05:17:21.5188705Z               "line": 3
2026-06-19T05:17:21.5188792Z             },
2026-06-19T05:17:21.5188882Z             {
2026-06-19T05:17:21.5189192Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-19T05:17:21.5189282Z               "line": 3
2026-06-19T05:17:21.5189359Z             },
2026-06-19T05:17:21.5189450Z             {
2026-06-19T05:17:21.5189602Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-19T05:17:21.5189693Z               "line": 3
2026-06-19T05:17:21.5189779Z             }
2026-06-19T05:17:21.5189868Z           ]
2026-06-19T05:17:21.5189944Z         },
2026-06-19T05:17:21.5190030Z         "impl": {
2026-06-19T05:17:21.5190130Z           "complete": false,
2026-06-19T05:17:21.5190218Z           "evidence": []
2026-06-19T05:17:21.5190308Z         },
2026-06-19T05:17:21.5190399Z         "int": {
2026-06-19T05:17:21.5190487Z           "complete": true,
2026-06-19T05:17:21.5190570Z           "evidence": [
2026-06-19T05:17:21.5190661Z             {
2026-06-19T05:17:21.5190790Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:17:21.5190871Z               "line": 14
2026-06-19T05:17:21.5190952Z             }
2026-06-19T05:17:21.5191030Z           ]
2026-06-19T05:17:21.5191115Z         },
2026-06-19T05:17:21.5191195Z         "unit": {
2026-06-19T05:17:21.5191401Z           "complete": false,
2026-06-19T05:17:21.5191487Z           "evidence": []
2026-06-19T05:17:21.5191572Z         }
2026-06-19T05:17:21.5191659Z       }
2026-06-19T05:17:21.5191735Z     },
2026-06-19T05:17:21.5191825Z     {
2026-06-19T05:17:21.5191916Z       "id": "REQ-DOCS-3",
2026-06-19T05:17:21.5192168Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-19T05:17:21.5192265Z       "requiredStages": [
2026-06-19T05:17:21.5192346Z         "doc"
2026-06-19T05:17:21.5192546Z       ],
2026-06-19T05:17:21.5192637Z       "stages": {
2026-06-19T05:17:21.5192722Z         "doc": {
2026-06-19T05:17:21.5192821Z           "complete": true,
2026-06-19T05:17:21.5192907Z           "evidence": [
2026-06-19T05:17:21.5192988Z             {
2026-06-19T05:17:21.5193097Z               "path": "docs-site/src/index.md",
2026-06-19T05:17:21.5193182Z               "line": 42
2026-06-19T05:17:21.5193264Z             }
2026-06-19T05:17:21.5193350Z           ]
2026-06-19T05:17:21.5193440Z         },
2026-06-19T05:17:21.5193531Z         "impl": {
2026-06-19T05:17:21.5193618Z           "complete": false,
2026-06-19T05:17:21.5193708Z           "evidence": []
2026-06-19T05:17:21.5193798Z         },
2026-06-19T05:17:21.5193875Z         "int": {
2026-06-19T05:17:21.5193970Z           "complete": false,
2026-06-19T05:17:21.5194056Z           "evidence": []
2026-06-19T05:17:21.5194132Z         },
2026-06-19T05:17:21.5194219Z         "unit": {
2026-06-19T05:17:21.5194304Z           "complete": false,
2026-06-19T05:17:21.5194394Z           "evidence": []
2026-06-19T05:17:21.5194470Z         }
2026-06-19T05:17:21.5194558Z       }
2026-06-19T05:17:21.5194637Z     },
2026-06-19T05:17:21.5194723Z     {
2026-06-19T05:17:21.5194824Z       "id": "REQ-DOCS-4",
2026-06-19T05:17:21.5195023Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-19T05:17:21.5195108Z       "requiredStages": [
2026-06-19T05:17:21.5195194Z         "doc",
2026-06-19T05:17:21.5195283Z         "impl",
2026-06-19T05:17:21.5195373Z         "unit"
2026-06-19T05:17:21.5195449Z       ],
2026-06-19T05:17:21.5195535Z       "stages": {
2026-06-19T05:17:21.5195622Z         "doc": {
2026-06-19T05:17:21.5195725Z           "complete": true,
2026-06-19T05:17:21.5195807Z           "evidence": [
2026-06-19T05:17:21.5195898Z             {
2026-06-19T05:17:21.5196007Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-19T05:17:21.5196103Z               "line": 35
2026-06-19T05:17:21.5196189Z             }
2026-06-19T05:17:21.5196279Z           ]
2026-06-19T05:17:21.5196369Z         },
2026-06-19T05:17:21.5196457Z         "impl": {
2026-06-19T05:17:21.5196556Z           "complete": true,
2026-06-19T05:17:21.5196646Z           "evidence": [
2026-06-19T05:17:21.5196732Z             {
2026-06-19T05:17:21.5196861Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5196946Z               "line": 702
2026-06-19T05:17:21.5197037Z             },
2026-06-19T05:17:21.5197115Z             {
2026-06-19T05:17:21.5197237Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.5197319Z               "line": 15
2026-06-19T05:17:21.5197410Z             }
2026-06-19T05:17:21.5197486Z           ]
2026-06-19T05:17:21.5197576Z         },
2026-06-19T05:17:21.5197662Z         "int": {
2026-06-19T05:17:21.5197749Z           "complete": false,
2026-06-19T05:17:21.5197838Z           "evidence": []
2026-06-19T05:17:21.5197923Z         },
2026-06-19T05:17:21.5198018Z         "unit": {
2026-06-19T05:17:21.5198109Z           "complete": true,
2026-06-19T05:17:21.5198193Z           "evidence": [
2026-06-19T05:17:21.5198278Z             {
2026-06-19T05:17:21.5198398Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5198494Z               "line": 1479
2026-06-19T05:17:21.5198574Z             }
2026-06-19T05:17:21.5198659Z           ]
2026-06-19T05:17:21.5198746Z         }
2026-06-19T05:17:21.5198827Z       }
2026-06-19T05:17:21.5198912Z     },
2026-06-19T05:17:21.5199180Z     {
2026-06-19T05:17:21.5199280Z       "id": "REQ-DOCS-5",
2026-06-19T05:17:21.5199470Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-19T05:17:21.5199565Z       "requiredStages": [
2026-06-19T05:17:21.5199653Z         "impl",
2026-06-19T05:17:21.5199733Z         "int"
2026-06-19T05:17:21.5199818Z       ],
2026-06-19T05:17:21.5199904Z       "stages": {
2026-06-19T05:17:21.5199991Z         "doc": {
2026-06-19T05:17:21.5200072Z           "complete": false,
2026-06-19T05:17:21.5200438Z           "evidence": []
2026-06-19T05:17:21.5200532Z         },
2026-06-19T05:17:21.5200614Z         "impl": {
2026-06-19T05:17:21.5200708Z           "complete": true,
2026-06-19T05:17:21.5200797Z           "evidence": [
2026-06-19T05:17:21.5200883Z             {
2026-06-19T05:17:21.5200994Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5201079Z               "line": 703
2026-06-19T05:17:21.5201164Z             },
2026-06-19T05:17:21.5201246Z             {
2026-06-19T05:17:21.5201355Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.5201441Z               "line": 113
2026-06-19T05:17:21.5201527Z             }
2026-06-19T05:17:21.5201609Z           ]
2026-06-19T05:17:21.5201684Z         },
2026-06-19T05:17:21.5201770Z         "int": {
2026-06-19T05:17:21.5201856Z           "complete": true,
2026-06-19T05:17:21.5201952Z           "evidence": [
2026-06-19T05:17:21.5202037Z             {
2026-06-19T05:17:21.5202147Z               "path": ".github/workflows/ci.yml",
2026-06-19T05:17:21.5202238Z               "line": 126
2026-06-19T05:17:21.5202328Z             },
2026-06-19T05:17:21.5202418Z             {
2026-06-19T05:17:21.5202529Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.5202619Z               "line": 1516
2026-06-19T05:17:21.5202705Z             }
2026-06-19T05:17:21.5202781Z           ]
2026-06-19T05:17:21.5202863Z         },
2026-06-19T05:17:21.5202953Z         "unit": {
2026-06-19T05:17:21.5203053Z           "complete": false,
2026-06-19T05:17:21.5203140Z           "evidence": []
2026-06-19T05:17:21.5203221Z         }
2026-06-19T05:17:21.5203305Z       }
2026-06-19T05:17:21.5203390Z     },
2026-06-19T05:17:21.5203476Z     {
2026-06-19T05:17:21.5203572Z       "id": "REQ-DOCS-6",
2026-06-19T05:17:21.5203901Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-19T05:17:21.5203995Z       "requiredStages": [
2026-06-19T05:17:21.5204086Z         "impl",
2026-06-19T05:17:21.5204173Z         "unit",
2026-06-19T05:17:21.5204249Z         "int"
2026-06-19T05:17:21.5204329Z       ],
2026-06-19T05:17:21.5204420Z       "stages": {
2026-06-19T05:17:21.5204512Z         "doc": {
2026-06-19T05:17:21.5204597Z           "complete": true,
2026-06-19T05:17:21.5204687Z           "evidence": [
2026-06-19T05:17:21.5204774Z             {
2026-06-19T05:17:21.5204906Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-19T05:17:21.5205002Z               "line": 4
2026-06-19T05:17:21.5205089Z             }
2026-06-19T05:17:21.5205174Z           ]
2026-06-19T05:17:21.5205254Z         },
2026-06-19T05:17:21.5205345Z         "impl": {
2026-06-19T05:17:21.5205433Z           "complete": true,
2026-06-19T05:17:21.5205526Z           "evidence": [
2026-06-19T05:17:21.5205602Z             {
2026-06-19T05:17:21.5205721Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5205816Z               "line": 5109
2026-06-19T05:17:21.5205890Z             }
2026-06-19T05:17:21.5205975Z           ]
2026-06-19T05:17:21.5206057Z         },
2026-06-19T05:17:21.5206144Z         "int": {
2026-06-19T05:17:21.5206224Z           "complete": true,
2026-06-19T05:17:21.5206319Z           "evidence": [
2026-06-19T05:17:21.5206406Z             {
2026-06-19T05:17:21.5206524Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:17:21.5206615Z               "line": 39
2026-06-19T05:17:21.5206692Z             }
2026-06-19T05:17:21.5206862Z           ]
2026-06-19T05:17:21.5206943Z         },
2026-06-19T05:17:21.5207036Z         "unit": {
2026-06-19T05:17:21.5207130Z           "complete": true,
2026-06-19T05:17:21.5207220Z           "evidence": [
2026-06-19T05:17:21.5207307Z             {
2026-06-19T05:17:21.5207411Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5207506Z               "line": 10530
2026-06-19T05:17:21.5207587Z             }
2026-06-19T05:17:21.5207675Z           ]
2026-06-19T05:17:21.5207831Z         }
2026-06-19T05:17:21.5207917Z       }
2026-06-19T05:17:21.5208004Z     },
2026-06-19T05:17:21.5208083Z     {
2026-06-19T05:17:21.5208184Z       "id": "REQ-ELEVATE-1",
2026-06-19T05:17:21.5211353Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-19T05:17:21.5211477Z       "requiredStages": [
2026-06-19T05:17:21.5211559Z         "doc",
2026-06-19T05:17:21.5211644Z         "impl",
2026-06-19T05:17:21.5211724Z         "unit"
2026-06-19T05:17:21.5211801Z       ],
2026-06-19T05:17:21.5211878Z       "stages": {
2026-06-19T05:17:21.5211968Z         "doc": {
2026-06-19T05:17:21.5212053Z           "complete": true,
2026-06-19T05:17:21.5212145Z           "evidence": [
2026-06-19T05:17:21.5212226Z             {
2026-06-19T05:17:21.5212316Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5212402Z               "line": 684
2026-06-19T05:17:21.5212479Z             }
2026-06-19T05:17:21.5212559Z           ]
2026-06-19T05:17:21.5212645Z         },
2026-06-19T05:17:21.5212731Z         "impl": {
2026-06-19T05:17:21.5212832Z           "complete": true,
2026-06-19T05:17:21.5212922Z           "evidence": [
2026-06-19T05:17:21.5213007Z             {
2026-06-19T05:17:21.5213113Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5213212Z               "line": 3448
2026-06-19T05:17:21.5213298Z             },
2026-06-19T05:17:21.5213385Z             {
2026-06-19T05:17:21.5213490Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5213579Z               "line": 3493
2026-06-19T05:17:21.5213661Z             },
2026-06-19T05:17:21.5213743Z             {
2026-06-19T05:17:21.5213847Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5213931Z               "line": 3555
2026-06-19T05:17:21.5214017Z             },
2026-06-19T05:17:21.5214104Z             {
2026-06-19T05:17:21.5214222Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5214313Z               "line": 92
2026-06-19T05:17:21.5214394Z             },
2026-06-19T05:17:21.5214475Z             {
2026-06-19T05:17:21.5214598Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5214681Z               "line": 148
2026-06-19T05:17:21.5214762Z             }
2026-06-19T05:17:21.5214843Z           ]
2026-06-19T05:17:21.5214923Z         },
2026-06-19T05:17:21.5215005Z         "int": {
2026-06-19T05:17:21.5215091Z           "complete": false,
2026-06-19T05:17:21.5215181Z           "evidence": []
2026-06-19T05:17:21.5215262Z         },
2026-06-19T05:17:21.5215348Z         "unit": {
2026-06-19T05:17:21.5215543Z           "complete": true,
2026-06-19T05:17:21.5215640Z           "evidence": [
2026-06-19T05:17:21.5215720Z             {
2026-06-19T05:17:21.5215829Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5215929Z               "line": 442
2026-06-19T05:17:21.5216012Z             },
2026-06-19T05:17:21.5216096Z             {
2026-06-19T05:17:21.5216200Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5216290Z               "line": 460
2026-06-19T05:17:21.5216474Z             }
2026-06-19T05:17:21.5216559Z           ]
2026-06-19T05:17:21.5216651Z         }
2026-06-19T05:17:21.5216733Z       }
2026-06-19T05:17:21.5216822Z     },
2026-06-19T05:17:21.5216908Z     {
2026-06-19T05:17:21.5217032Z       "id": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
2026-06-19T05:17:21.5218758Z       "title": "`spt endpoint list` always merges this node's LOCAL (unadvertised) perches into the view; the `--local` flag is REMOVED (operator decision 2026-06-17). Rationale: `spt whoami` is a thin alias of `endpoint list` — a just-online agent running `whoami` must see its OWN perch, or it gets an omitted-self view ('chaos'). FIX: drop the `--local` flag + its `--detail` conflict test + the v0.10.0 REQ-PICKER-5 hint line (cli.rs:1678) + cmd_list_local; the bare list merges local perches into the subnet view; fix the whoami alias path accordingly. Run `cargo run -p xtask -- gen` (docs-drift, DEFAULT target). (v0.12.1)",
2026-06-19T05:17:21.5218865Z       "requiredStages": [
2026-06-19T05:17:21.5219029Z         "doc",
2026-06-19T05:17:21.5219109Z         "impl",
2026-06-19T05:17:21.5219196Z         "unit"
2026-06-19T05:17:21.5219275Z       ],
2026-06-19T05:17:21.5219361Z       "stages": {
2026-06-19T05:17:21.5219451Z         "doc": {
2026-06-19T05:17:21.5219542Z           "complete": true,
2026-06-19T05:17:21.5219637Z           "evidence": [
2026-06-19T05:17:21.5219722Z             {
2026-06-19T05:17:21.5219819Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5219900Z               "line": 708
2026-06-19T05:17:21.5219985Z             }
2026-06-19T05:17:21.5220065Z           ]
2026-06-19T05:17:21.5220153Z         },
2026-06-19T05:17:21.5220233Z         "impl": {
2026-06-19T05:17:21.5220333Z           "complete": true,
2026-06-19T05:17:21.5220415Z           "evidence": [
2026-06-19T05:17:21.5220491Z             {
2026-06-19T05:17:21.5220605Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5220695Z               "line": 1614
2026-06-19T05:17:21.5220778Z             },
2026-06-19T05:17:21.5220863Z             {
2026-06-19T05:17:21.5220962Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5221049Z               "line": 3001
2026-06-19T05:17:21.5221131Z             },
2026-06-19T05:17:21.5221220Z             {
2026-06-19T05:17:21.5221325Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5221417Z               "line": 3010
2026-06-19T05:17:21.5221516Z             }
2026-06-19T05:17:21.5221587Z           ]
2026-06-19T05:17:21.5221672Z         },
2026-06-19T05:17:21.5221763Z         "int": {
2026-06-19T05:17:21.5221861Z           "complete": false,
2026-06-19T05:17:21.5221950Z           "evidence": []
2026-06-19T05:17:21.5222027Z         },
2026-06-19T05:17:21.5222114Z         "unit": {
2026-06-19T05:17:21.5222195Z           "complete": true,
2026-06-19T05:17:21.5222279Z           "evidence": [
2026-06-19T05:17:21.5222366Z             {
2026-06-19T05:17:21.5222471Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5222566Z               "line": 7807
2026-06-19T05:17:21.5222647Z             },
2026-06-19T05:17:21.5222734Z             {
2026-06-19T05:17:21.5222833Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5222923Z               "line": 7848
2026-06-19T05:17:21.5222996Z             }
2026-06-19T05:17:21.5223086Z           ]
2026-06-19T05:17:21.5223177Z         }
2026-06-19T05:17:21.5223257Z       }
2026-06-19T05:17:21.5223345Z     },
2026-06-19T05:17:21.5223430Z     {
2026-06-19T05:17:21.5223539Z       "id": "REQ-ENDPOINT-PURGE",
2026-06-19T05:17:21.5228427Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
2026-06-19T05:17:21.5228670Z       "requiredStages": [
2026-06-19T05:17:21.5228757Z         "doc",
2026-06-19T05:17:21.5228833Z         "impl",
2026-06-19T05:17:21.5228922Z         "unit",
2026-06-19T05:17:21.5229081Z         "int"
2026-06-19T05:17:21.5229167Z       ],
2026-06-19T05:17:21.5229261Z       "stages": {
2026-06-19T05:17:21.5229343Z         "doc": {
2026-06-19T05:17:21.5229439Z           "complete": true,
2026-06-19T05:17:21.5229537Z           "evidence": [
2026-06-19T05:17:21.5229613Z             {
2026-06-19T05:17:21.5229713Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5229808Z               "line": 163
2026-06-19T05:17:21.5229897Z             }
2026-06-19T05:17:21.5229977Z           ]
2026-06-19T05:17:21.5230064Z         },
2026-06-19T05:17:21.5230150Z         "impl": {
2026-06-19T05:17:21.5230240Z           "complete": true,
2026-06-19T05:17:21.5230330Z           "evidence": [
2026-06-19T05:17:21.5230417Z             {
2026-06-19T05:17:21.5230559Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5230645Z               "line": 105
2026-06-19T05:17:21.5230728Z             },
2026-06-19T05:17:21.5230813Z             {
2026-06-19T05:17:21.5230922Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5231008Z               "line": 7076
2026-06-19T05:17:21.5231094Z             }
2026-06-19T05:17:21.5231179Z           ]
2026-06-19T05:17:21.5231256Z         },
2026-06-19T05:17:21.5231348Z         "int": {
2026-06-19T05:17:21.5231441Z           "complete": true,
2026-06-19T05:17:21.5231527Z           "evidence": [
2026-06-19T05:17:21.5231604Z             {
2026-06-19T05:17:21.5231714Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5231799Z               "line": 7241
2026-06-19T05:17:21.5231881Z             }
2026-06-19T05:17:21.5231962Z           ]
2026-06-19T05:17:21.5232038Z         },
2026-06-19T05:17:21.5232133Z         "unit": {
2026-06-19T05:17:21.5232227Z           "complete": true,
2026-06-19T05:17:21.5232323Z           "evidence": [
2026-06-19T05:17:21.5232402Z             {
2026-06-19T05:17:21.5232506Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5232602Z               "line": 7212
2026-06-19T05:17:21.5232679Z             }
2026-06-19T05:17:21.5232764Z           ]
2026-06-19T05:17:21.5232844Z         }
2026-06-19T05:17:21.5232931Z       }
2026-06-19T05:17:21.5233017Z     },
2026-06-19T05:17:21.5233102Z     {
2026-06-19T05:17:21.5233312Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
2026-06-19T05:17:21.5234591Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
2026-06-19T05:17:21.5234791Z       "requiredStages": [
2026-06-19T05:17:21.5234878Z         "impl",
2026-06-19T05:17:21.5234962Z         "unit"
2026-06-19T05:17:21.5235047Z       ],
2026-06-19T05:17:21.5235128Z       "stages": {
2026-06-19T05:17:21.5235209Z         "doc": {
2026-06-19T05:17:21.5235291Z           "complete": false,
2026-06-19T05:17:21.5235389Z           "evidence": []
2026-06-19T05:17:21.5235481Z         },
2026-06-19T05:17:21.5235563Z         "impl": {
2026-06-19T05:17:21.5235662Z           "complete": true,
2026-06-19T05:17:21.5235742Z           "evidence": [
2026-06-19T05:17:21.5235825Z             {
2026-06-19T05:17:21.5235934Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5236033Z               "line": 3041
2026-06-19T05:17:21.5236125Z             }
2026-06-19T05:17:21.5236206Z           ]
2026-06-19T05:17:21.5236297Z         },
2026-06-19T05:17:21.5236382Z         "int": {
2026-06-19T05:17:21.5236478Z           "complete": false,
2026-06-19T05:17:21.5236573Z           "evidence": []
2026-06-19T05:17:21.5236663Z         },
2026-06-19T05:17:21.5236755Z         "unit": {
2026-06-19T05:17:21.5236845Z           "complete": true,
2026-06-19T05:17:21.5236944Z           "evidence": [
2026-06-19T05:17:21.5237026Z             {
2026-06-19T05:17:21.5237132Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5237221Z               "line": 7188
2026-06-19T05:17:21.5237311Z             }
2026-06-19T05:17:21.5237392Z           ]
2026-06-19T05:17:21.5237482Z         }
2026-06-19T05:17:21.5237566Z       }
2026-06-19T05:17:21.5237647Z     },
2026-06-19T05:17:21.5237733Z     {
2026-06-19T05:17:21.5237814Z       "id": "REQ-EP-1",
2026-06-19T05:17:21.5237956Z       "title": "Day-one endpoint types; open type system",
2026-06-19T05:17:21.5238053Z       "requiredStages": [
2026-06-19T05:17:21.5238138Z         "impl",
2026-06-19T05:17:21.5238233Z         "unit"
2026-06-19T05:17:21.5238314Z       ],
2026-06-19T05:17:21.5238396Z       "stages": {
2026-06-19T05:17:21.5238472Z         "doc": {
2026-06-19T05:17:21.5238581Z           "complete": false,
2026-06-19T05:17:21.5238683Z           "evidence": []
2026-06-19T05:17:21.5238768Z         },
2026-06-19T05:17:21.5238863Z         "impl": {
2026-06-19T05:17:21.5239050Z           "complete": true,
2026-06-19T05:17:21.5239149Z           "evidence": [
2026-06-19T05:17:21.5239230Z             {
2026-06-19T05:17:21.5239360Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5239449Z               "line": 77
2026-06-19T05:17:21.5239540Z             },
2026-06-19T05:17:21.5239617Z             {
2026-06-19T05:17:21.5239736Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5239831Z               "line": 94
2026-06-19T05:17:21.5239912Z             }
2026-06-19T05:17:21.5239985Z           ]
2026-06-19T05:17:21.5240079Z         },
2026-06-19T05:17:21.5240159Z         "int": {
2026-06-19T05:17:21.5240254Z           "complete": false,
2026-06-19T05:17:21.5240340Z           "evidence": []
2026-06-19T05:17:21.5240429Z         },
2026-06-19T05:17:21.5240509Z         "unit": {
2026-06-19T05:17:21.5240609Z           "complete": true,
2026-06-19T05:17:21.5240696Z           "evidence": [
2026-06-19T05:17:21.5240772Z             {
2026-06-19T05:17:21.5240900Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5240987Z               "line": 161
2026-06-19T05:17:21.5241068Z             },
2026-06-19T05:17:21.5241153Z             {
2026-06-19T05:17:21.5241273Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5241477Z               "line": 178
2026-06-19T05:17:21.5241559Z             }
2026-06-19T05:17:21.5241645Z           ]
2026-06-19T05:17:21.5241730Z         }
2026-06-19T05:17:21.5241811Z       }
2026-06-19T05:17:21.5241898Z     },
2026-06-19T05:17:21.5241983Z     {
2026-06-19T05:17:21.5242078Z       "id": "REQ-EP-2",
2026-06-19T05:17:21.5242241Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-19T05:17:21.5242431Z       "requiredStages": [
2026-06-19T05:17:21.5242518Z         "impl",
2026-06-19T05:17:21.5242617Z         "unit"
2026-06-19T05:17:21.5242697Z       ],
2026-06-19T05:17:21.5242782Z       "stages": {
2026-06-19T05:17:21.5242869Z         "doc": {
2026-06-19T05:17:21.5242953Z           "complete": false,
2026-06-19T05:17:21.5243052Z           "evidence": []
2026-06-19T05:17:21.5243133Z         },
2026-06-19T05:17:21.5243229Z         "impl": {
2026-06-19T05:17:21.5243310Z           "complete": true,
2026-06-19T05:17:21.5243414Z           "evidence": [
2026-06-19T05:17:21.5243501Z             {
2026-06-19T05:17:21.5243615Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5243710Z               "line": 114
2026-06-19T05:17:21.5243791Z             },
2026-06-19T05:17:21.5243882Z             {
2026-06-19T05:17:21.5243996Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5244092Z               "line": 131
2026-06-19T05:17:21.5244174Z             },
2026-06-19T05:17:21.5244263Z             {
2026-06-19T05:17:21.5244387Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5244479Z               "line": 138
2026-06-19T05:17:21.5244559Z             }
2026-06-19T05:17:21.5244645Z           ]
2026-06-19T05:17:21.5244731Z         },
2026-06-19T05:17:21.5244817Z         "int": {
2026-06-19T05:17:21.5244897Z           "complete": false,
2026-06-19T05:17:21.5244998Z           "evidence": []
2026-06-19T05:17:21.5245075Z         },
2026-06-19T05:17:21.5245165Z         "unit": {
2026-06-19T05:17:21.5245260Z           "complete": true,
2026-06-19T05:17:21.5245356Z           "evidence": [
2026-06-19T05:17:21.5245438Z             {
2026-06-19T05:17:21.5245555Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5245635Z               "line": 190
2026-06-19T05:17:21.5245721Z             },
2026-06-19T05:17:21.5245813Z             {
2026-06-19T05:17:21.5245931Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5246031Z               "line": 208
2026-06-19T05:17:21.5246123Z             },
2026-06-19T05:17:21.5246208Z             {
2026-06-19T05:17:21.5246332Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:17:21.5246418Z               "line": 221
2026-06-19T05:17:21.5246514Z             }
2026-06-19T05:17:21.5246594Z           ]
2026-06-19T05:17:21.5246685Z         }
2026-06-19T05:17:21.5246771Z       }
2026-06-19T05:17:21.5246847Z     },
2026-06-19T05:17:21.5246932Z     {
2026-06-19T05:17:21.5247020Z       "id": "REQ-EP-3",
2026-06-19T05:17:21.5247209Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-19T05:17:21.5247300Z       "requiredStages": [
2026-06-19T05:17:21.5247377Z         "impl",
2026-06-19T05:17:21.5247471Z         "unit"
2026-06-19T05:17:21.5247543Z       ],
2026-06-19T05:17:21.5247634Z       "stages": {
2026-06-19T05:17:21.5247715Z         "doc": {
2026-06-19T05:17:21.5247810Z           "complete": false,
2026-06-19T05:17:21.5247895Z           "evidence": []
2026-06-19T05:17:21.5247986Z         },
2026-06-19T05:17:21.5248061Z         "impl": {
2026-06-19T05:17:21.5248141Z           "complete": true,
2026-06-19T05:17:21.5248226Z           "evidence": [
2026-06-19T05:17:21.5248312Z             {
2026-06-19T05:17:21.5248436Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5248512Z               "line": 31
2026-06-19T05:17:21.5248603Z             },
2026-06-19T05:17:21.5248690Z             {
2026-06-19T05:17:21.5248879Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5249046Z               "line": 49
2026-06-19T05:17:21.5249132Z             }
2026-06-19T05:17:21.5249233Z           ]
2026-06-19T05:17:21.5249314Z         },
2026-06-19T05:17:21.5249395Z         "int": {
2026-06-19T05:17:21.5249499Z           "complete": false,
2026-06-19T05:17:21.5249586Z           "evidence": []
2026-06-19T05:17:21.5249666Z         },
2026-06-19T05:17:21.5249752Z         "unit": {
2026-06-19T05:17:21.5249953Z           "complete": true,
2026-06-19T05:17:21.5250037Z           "evidence": [
2026-06-19T05:17:21.5250114Z             {
2026-06-19T05:17:21.5250235Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5250324Z               "line": 156
2026-06-19T05:17:21.5250410Z             },
2026-06-19T05:17:21.5250497Z             {
2026-06-19T05:17:21.5250621Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5250700Z               "line": 164
2026-06-19T05:17:21.5250795Z             },
2026-06-19T05:17:21.5250881Z             {
2026-06-19T05:17:21.5250989Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5251088Z               "line": 177
2026-06-19T05:17:21.5251165Z             },
2026-06-19T05:17:21.5251251Z             {
2026-06-19T05:17:21.5251364Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5251465Z               "line": 200
2026-06-19T05:17:21.5251552Z             },
2026-06-19T05:17:21.5251624Z             {
2026-06-19T05:17:21.5251737Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5251824Z               "line": 216
2026-06-19T05:17:21.5251918Z             },
2026-06-19T05:17:21.5252004Z             {
2026-06-19T05:17:21.5252109Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:17:21.5252200Z               "line": 233
2026-06-19T05:17:21.5252286Z             }
2026-06-19T05:17:21.5252371Z           ]
2026-06-19T05:17:21.5252458Z         }
2026-06-19T05:17:21.5252543Z       }
2026-06-19T05:17:21.5252634Z     },
2026-06-19T05:17:21.5252715Z     {
2026-06-19T05:17:21.5252821Z       "id": "REQ-EP-4",
2026-06-19T05:17:21.5252967Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-19T05:17:21.5253069Z       "requiredStages": [
2026-06-19T05:17:21.5253154Z         "impl",
2026-06-19T05:17:21.5253248Z         "unit"
2026-06-19T05:17:21.5253328Z       ],
2026-06-19T05:17:21.5253414Z       "stages": {
2026-06-19T05:17:21.5253500Z         "doc": {
2026-06-19T05:17:21.5253598Z           "complete": false,
2026-06-19T05:17:21.5256911Z           "evidence": []
2026-06-19T05:17:21.5257026Z         },
2026-06-19T05:17:21.5257130Z         "impl": {
2026-06-19T05:17:21.5257226Z           "complete": true,
2026-06-19T05:17:21.5257326Z           "evidence": [
2026-06-19T05:17:21.5257440Z             {
2026-06-19T05:17:21.5257575Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5257665Z               "line": 718
2026-06-19T05:17:21.5257760Z             },
2026-06-19T05:17:21.5257841Z             {
2026-06-19T05:17:21.5257956Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5258050Z               "line": 1079
2026-06-19T05:17:21.5258136Z             },
2026-06-19T05:17:21.5258219Z             {
2026-06-19T05:17:21.5258346Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5258426Z               "line": 1434
2026-06-19T05:17:21.5258512Z             },
2026-06-19T05:17:21.5258602Z             {
2026-06-19T05:17:21.5258706Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5258786Z               "line": 118
2026-06-19T05:17:21.5258863Z             },
2026-06-19T05:17:21.5259011Z             {
2026-06-19T05:17:21.5259125Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5259216Z               "line": 651
2026-06-19T05:17:21.5259306Z             },
2026-06-19T05:17:21.5259401Z             {
2026-06-19T05:17:21.5259663Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5259749Z               "line": 788
2026-06-19T05:17:21.5259836Z             },
2026-06-19T05:17:21.5259917Z             {
2026-06-19T05:17:21.5260035Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5260127Z               "line": 271
2026-06-19T05:17:21.5260208Z             },
2026-06-19T05:17:21.5260289Z             {
2026-06-19T05:17:21.5260403Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5260598Z               "line": 458
2026-06-19T05:17:21.5260679Z             },
2026-06-19T05:17:21.5260762Z             {
2026-06-19T05:17:21.5260880Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5260961Z               "line": 1246
2026-06-19T05:17:21.5261043Z             }
2026-06-19T05:17:21.5261124Z           ]
2026-06-19T05:17:21.5261209Z         },
2026-06-19T05:17:21.5261284Z         "int": {
2026-06-19T05:17:21.5261384Z           "complete": false,
2026-06-19T05:17:21.5261488Z           "evidence": []
2026-06-19T05:17:21.5261573Z         },
2026-06-19T05:17:21.5261658Z         "unit": {
2026-06-19T05:17:21.5261749Z           "complete": true,
2026-06-19T05:17:21.5261845Z           "evidence": [
2026-06-19T05:17:21.5261916Z             {
2026-06-19T05:17:21.5262035Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5262126Z               "line": 879
2026-06-19T05:17:21.5262212Z             },
2026-06-19T05:17:21.5262301Z             {
2026-06-19T05:17:21.5262432Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-19T05:17:21.5262517Z               "line": 76
2026-06-19T05:17:21.5262597Z             },
2026-06-19T05:17:21.5262684Z             {
2026-06-19T05:17:21.5262807Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-19T05:17:21.5262888Z               "line": 147
2026-06-19T05:17:21.5262974Z             }
2026-06-19T05:17:21.5263056Z           ]
2026-06-19T05:17:21.5263141Z         }
2026-06-19T05:17:21.5263222Z       }
2026-06-19T05:17:21.5263304Z     },
2026-06-19T05:17:21.5263385Z     {
2026-06-19T05:17:21.5263465Z       "id": "REQ-EP-5",
2026-06-19T05:17:21.5264125Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-19T05:17:21.5264220Z       "requiredStages": [
2026-06-19T05:17:21.5264301Z         "impl",
2026-06-19T05:17:21.5264393Z         "unit",
2026-06-19T05:17:21.5264473Z         "int"
2026-06-19T05:17:21.5264563Z       ],
2026-06-19T05:17:21.5264646Z       "stages": {
2026-06-19T05:17:21.5264731Z         "doc": {
2026-06-19T05:17:21.5264820Z           "complete": false,
2026-06-19T05:17:21.5264917Z           "evidence": []
2026-06-19T05:17:21.5265003Z         },
2026-06-19T05:17:21.5265084Z         "impl": {
2026-06-19T05:17:21.5265183Z           "complete": true,
2026-06-19T05:17:21.5265270Z           "evidence": [
2026-06-19T05:17:21.5265355Z             {
2026-06-19T05:17:21.5265484Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5265580Z               "line": 367
2026-06-19T05:17:21.5265665Z             },
2026-06-19T05:17:21.5265746Z             {
2026-06-19T05:17:21.5265876Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5265966Z               "line": 18
2026-06-19T05:17:21.5266051Z             },
2026-06-19T05:17:21.5266137Z             {
2026-06-19T05:17:21.5266263Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5266356Z               "line": 63
2026-06-19T05:17:21.5266437Z             },
2026-06-19T05:17:21.5266524Z             {
2026-06-19T05:17:21.5266642Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5266737Z               "line": 92
2026-06-19T05:17:21.5266818Z             },
2026-06-19T05:17:21.5266899Z             {
2026-06-19T05:17:21.5267085Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5267176Z               "line": 167
2026-06-19T05:17:21.5267257Z             },
2026-06-19T05:17:21.5267333Z             {
2026-06-19T05:17:21.5267452Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5267543Z               "line": 179
2026-06-19T05:17:21.5267629Z             },
2026-06-19T05:17:21.5267709Z             {
2026-06-19T05:17:21.5267820Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5267981Z               "line": 114
2026-06-19T05:17:21.5268067Z             },
2026-06-19T05:17:21.5268144Z             {
2026-06-19T05:17:21.5268267Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5268358Z               "line": 22
2026-06-19T05:17:21.5268445Z             },
2026-06-19T05:17:21.5268530Z             {
2026-06-19T05:17:21.5268644Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5268740Z               "line": 145
2026-06-19T05:17:21.5268822Z             },
2026-06-19T05:17:21.5268906Z             {
2026-06-19T05:17:21.5269096Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5269190Z               "line": 174
2026-06-19T05:17:21.5269266Z             },
2026-06-19T05:17:21.5269351Z             {
2026-06-19T05:17:21.5269461Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5269551Z               "line": 196
2026-06-19T05:17:21.5269641Z             },
2026-06-19T05:17:21.5269723Z             {
2026-06-19T05:17:21.5269838Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5269918Z               "line": 221
2026-06-19T05:17:21.5270004Z             },
2026-06-19T05:17:21.5270077Z             {
2026-06-19T05:17:21.5270195Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5270276Z               "line": 247
2026-06-19T05:17:21.5270358Z             },
2026-06-19T05:17:21.5270443Z             {
2026-06-19T05:17:21.5270548Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5270629Z               "line": 270
2026-06-19T05:17:21.5270716Z             },
2026-06-19T05:17:21.5270796Z             {
2026-06-19T05:17:21.5270920Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5271002Z               "line": 100
2026-06-19T05:17:21.5271083Z             },
2026-06-19T05:17:21.5271163Z             {
2026-06-19T05:17:21.5271273Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5271360Z               "line": 5925
2026-06-19T05:17:21.5271440Z             },
2026-06-19T05:17:21.5271516Z             {
2026-06-19T05:17:21.5271608Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5271693Z               "line": 6059
2026-06-19T05:17:21.5271778Z             },
2026-06-19T05:17:21.5271863Z             {
2026-06-19T05:17:21.5271953Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5272039Z               "line": 6225
2026-06-19T05:17:21.5272133Z             },
2026-06-19T05:17:21.5272213Z             {
2026-06-19T05:17:21.5272319Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5272400Z               "line": 6753
2026-06-19T05:17:21.5272485Z             }
2026-06-19T05:17:21.5272571Z           ]
2026-06-19T05:17:21.5272653Z         },
2026-06-19T05:17:21.5272739Z         "int": {
2026-06-19T05:17:21.5272828Z           "complete": true,
2026-06-19T05:17:21.5272910Z           "evidence": [
2026-06-19T05:17:21.5272996Z             {
2026-06-19T05:17:21.5273124Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-19T05:17:21.5273206Z               "line": 16
2026-06-19T05:17:21.5273297Z             },
2026-06-19T05:17:21.5273382Z             {
2026-06-19T05:17:21.5273481Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-19T05:17:21.5273569Z               "line": 15
2026-06-19T05:17:21.5273650Z             }
2026-06-19T05:17:21.5273729Z           ]
2026-06-19T05:17:21.5273912Z         },
2026-06-19T05:17:21.5273997Z         "unit": {
2026-06-19T05:17:21.5274097Z           "complete": true,
2026-06-19T05:17:21.5274189Z           "evidence": [
2026-06-19T05:17:21.5274260Z             {
2026-06-19T05:17:21.5274382Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5274468Z               "line": 246
2026-06-19T05:17:21.5274540Z             },
2026-06-19T05:17:21.5274629Z             {
2026-06-19T05:17:21.5274746Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5274919Z               "line": 306
2026-06-19T05:17:21.5275010Z             },
2026-06-19T05:17:21.5275090Z             {
2026-06-19T05:17:21.5275206Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:17:21.5275286Z               "line": 363
2026-06-19T05:17:21.5275371Z             },
2026-06-19T05:17:21.5275457Z             {
2026-06-19T05:17:21.5275572Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5275672Z               "line": 286
2026-06-19T05:17:21.5275753Z             },
2026-06-19T05:17:21.5275840Z             {
2026-06-19T05:17:21.5275958Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5276048Z               "line": 338
2026-06-19T05:17:21.5276140Z             },
2026-06-19T05:17:21.5276221Z             {
2026-06-19T05:17:21.5276334Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5276416Z               "line": 779
2026-06-19T05:17:21.5276508Z             },
2026-06-19T05:17:21.5276591Z             {
2026-06-19T05:17:21.5276688Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5276779Z               "line": 8556
2026-06-19T05:17:21.5276860Z             },
2026-06-19T05:17:21.5276945Z             {
2026-06-19T05:17:21.5277046Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5277137Z               "line": 8709
2026-06-19T05:17:21.5277212Z             },
2026-06-19T05:17:21.5277292Z             {
2026-06-19T05:17:21.5277397Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5277488Z               "line": 9298
2026-06-19T05:17:21.5277569Z             },
2026-06-19T05:17:21.5277650Z             {
2026-06-19T05:17:21.5277755Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5277841Z               "line": 9414
2026-06-19T05:17:21.5277921Z             }
2026-06-19T05:17:21.5278007Z           ]
2026-06-19T05:17:21.5278090Z         }
2026-06-19T05:17:21.5278170Z       }
2026-06-19T05:17:21.5278260Z     },
2026-06-19T05:17:21.5278346Z     {
2026-06-19T05:17:21.5278437Z       "id": "REQ-EP-6",
2026-06-19T05:17:21.5279973Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-19T05:17:21.5280084Z       "requiredStages": [
2026-06-19T05:17:21.5280159Z         "doc",
2026-06-19T05:17:21.5280240Z         "impl",
2026-06-19T05:17:21.5280322Z         "unit"
2026-06-19T05:17:21.5280403Z       ],
2026-06-19T05:17:21.5280493Z       "stages": {
2026-06-19T05:17:21.5280579Z         "doc": {
2026-06-19T05:17:21.5280665Z           "complete": true,
2026-06-19T05:17:21.5280760Z           "evidence": [
2026-06-19T05:17:21.5280836Z             {
2026-06-19T05:17:21.5280938Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5281013Z               "line": 227
2026-06-19T05:17:21.5281098Z             }
2026-06-19T05:17:21.5281179Z           ]
2026-06-19T05:17:21.5281262Z         },
2026-06-19T05:17:21.5281342Z         "impl": {
2026-06-19T05:17:21.5281442Z           "complete": true,
2026-06-19T05:17:21.5281528Z           "evidence": [
2026-06-19T05:17:21.5281718Z             {
2026-06-19T05:17:21.5281838Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5281920Z               "line": 203
2026-06-19T05:17:21.5282004Z             }
2026-06-19T05:17:21.5282086Z           ]
2026-06-19T05:17:21.5282177Z         },
2026-06-19T05:17:21.5282268Z         "int": {
2026-06-19T05:17:21.5282357Z           "complete": true,
2026-06-19T05:17:21.5282437Z           "evidence": [
2026-06-19T05:17:21.5282513Z             {
2026-06-19T05:17:21.5282731Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-19T05:17:21.5282812Z               "line": 18
2026-06-19T05:17:21.5282888Z             }
2026-06-19T05:17:21.5282970Z           ]
2026-06-19T05:17:21.5283045Z         },
2026-06-19T05:17:21.5283126Z         "unit": {
2026-06-19T05:17:21.5283213Z           "complete": true,
2026-06-19T05:17:21.5283299Z           "evidence": [
2026-06-19T05:17:21.5283379Z             {
2026-06-19T05:17:21.5283509Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.5283604Z               "line": 555
2026-06-19T05:17:21.5283689Z             },
2026-06-19T05:17:21.5283775Z             {
2026-06-19T05:17:21.5283885Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5283971Z               "line": 787
2026-06-19T05:17:21.5284051Z             }
2026-06-19T05:17:21.5284139Z           ]
2026-06-19T05:17:21.5284224Z         }
2026-06-19T05:17:21.5284299Z       }
2026-06-19T05:17:21.5284376Z     },
2026-06-19T05:17:21.5284458Z     {
2026-06-19T05:17:21.5284548Z       "id": "REQ-EP-7",
2026-06-19T05:17:21.5286175Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-19T05:17:21.5286269Z       "requiredStages": [
2026-06-19T05:17:21.5286357Z         "doc",
2026-06-19T05:17:21.5286442Z         "impl",
2026-06-19T05:17:21.5286528Z         "unit"
2026-06-19T05:17:21.5286608Z       ],
2026-06-19T05:17:21.5286696Z       "stages": {
2026-06-19T05:17:21.5286781Z         "doc": {
2026-06-19T05:17:21.5286872Z           "complete": true,
2026-06-19T05:17:21.5286971Z           "evidence": [
2026-06-19T05:17:21.5287053Z             {
2026-06-19T05:17:21.5287152Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5287243Z               "line": 487
2026-06-19T05:17:21.5287321Z             }
2026-06-19T05:17:21.5287406Z           ]
2026-06-19T05:17:21.5287485Z         },
2026-06-19T05:17:21.5287567Z         "impl": {
2026-06-19T05:17:21.5287640Z           "complete": true,
2026-06-19T05:17:21.5287735Z           "evidence": [
2026-06-19T05:17:21.5287810Z             {
2026-06-19T05:17:21.5287928Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5288010Z               "line": 505
2026-06-19T05:17:21.5288087Z             },
2026-06-19T05:17:21.5288176Z             {
2026-06-19T05:17:21.5288277Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.5288368Z               "line": 87
2026-06-19T05:17:21.5288458Z             },
2026-06-19T05:17:21.5288539Z             {
2026-06-19T05:17:21.5288678Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5288764Z               "line": 81
2026-06-19T05:17:21.5288844Z             },
2026-06-19T05:17:21.5288926Z             {
2026-06-19T05:17:21.5289125Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5289221Z               "line": 166
2026-06-19T05:17:21.5289298Z             },
2026-06-19T05:17:21.5289378Z             {
2026-06-19T05:17:21.5289483Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5289697Z               "line": 1538
2026-06-19T05:17:21.5289783Z             }
2026-06-19T05:17:21.5289870Z           ]
2026-06-19T05:17:21.5289956Z         },
2026-06-19T05:17:21.5290040Z         "int": {
2026-06-19T05:17:21.5290135Z           "complete": false,
2026-06-19T05:17:21.5290231Z           "evidence": []
2026-06-19T05:17:21.5290311Z         },
2026-06-19T05:17:21.5290395Z         "unit": {
2026-06-19T05:17:21.5290485Z           "complete": true,
2026-06-19T05:17:21.5290663Z           "evidence": [
2026-06-19T05:17:21.5290743Z             {
2026-06-19T05:17:21.5290853Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5290939Z               "line": 623
2026-06-19T05:17:21.5291034Z             },
2026-06-19T05:17:21.5291114Z             {
2026-06-19T05:17:21.5291230Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5291320Z               "line": 212
2026-06-19T05:17:21.5291406Z             },
2026-06-19T05:17:21.5291502Z             {
2026-06-19T05:17:21.5291611Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.5291706Z               "line": 307
2026-06-19T05:17:21.5291793Z             },
2026-06-19T05:17:21.5291874Z             {
2026-06-19T05:17:21.5291978Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5292064Z               "line": 7581
2026-06-19T05:17:21.5292151Z             },
2026-06-19T05:17:21.5292221Z             {
2026-06-19T05:17:21.5292331Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5292418Z               "line": 7608
2026-06-19T05:17:21.5292504Z             }
2026-06-19T05:17:21.5292588Z           ]
2026-06-19T05:17:21.5292675Z         }
2026-06-19T05:17:21.5292756Z       }
2026-06-19T05:17:21.5292837Z     },
2026-06-19T05:17:21.5292922Z     {
2026-06-19T05:17:21.5293011Z       "id": "REQ-FRONT-1",
2026-06-19T05:17:21.5293196Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-19T05:17:21.5293296Z       "requiredStages": [],
2026-06-19T05:17:21.5293377Z       "stages": {
2026-06-19T05:17:21.5293458Z         "doc": {
2026-06-19T05:17:21.5293544Z           "complete": false,
2026-06-19T05:17:21.5293639Z           "evidence": []
2026-06-19T05:17:21.5293720Z         },
2026-06-19T05:17:21.5293811Z         "impl": {
2026-06-19T05:17:21.5293910Z           "complete": false,
2026-06-19T05:17:21.5294001Z           "evidence": []
2026-06-19T05:17:21.5294083Z         },
2026-06-19T05:17:21.5294164Z         "int": {
2026-06-19T05:17:21.5294249Z           "complete": false,
2026-06-19T05:17:21.5294331Z           "evidence": []
2026-06-19T05:17:21.5294421Z         },
2026-06-19T05:17:21.5294507Z         "unit": {
2026-06-19T05:17:21.5294597Z           "complete": false,
2026-06-19T05:17:21.5294694Z           "evidence": []
2026-06-19T05:17:21.5294770Z         }
2026-06-19T05:17:21.5294854Z       }
2026-06-19T05:17:21.5294940Z     },
2026-06-19T05:17:21.5295028Z     {
2026-06-19T05:17:21.5295141Z       "id": "REQ-HAZARD-ATTACH-WEDGE",
2026-06-19T05:17:21.5300440Z       "title": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the broker for all other clients. ROOT (v0.12.0 real-harness defect): loopback attach output is a blocking write_all into a bounded 64KB tokio duplex (nethost.rs:1040,1090); when the operator's rc pump stops draining (tab closed) the buffer fills and write_all blocks forever (the 'loopback never hangs' assumption at nethost.rs:1103 is false), parking a worker in the 2-worker net runtime (nethost.rs:640); a couple of these saturate BOTH workers → every new attach / `endpoint run` stalls right after 'PUMP_IPC_READER: spawned' → 30s FIRST_EVENT_GRACE → 'no output / dead or wedged'; `daemon stop` cannot join the stuck workers. DISTINCT from the removed B1 path-(c) mutex deadlock. DISPOSITION = PROVE-DON'T-CHANGE (doyle GATE-PASS @e883f45, 2026-06-18): this ROOT is the SUPERSEDED v0.12.0 hypothesis — the post-L0 code ALREADY prevents the wedge, so NO fail-fast / worker-count code was added. serve_attach forwards fire-and-forget (net_stream_send op_id=None) and the broker-side send_stream is already BROKER-QUIC-DEADLINE-bounded (bounded_block_on, 10s); the loopback duplex is drained broker-INTERNALLY by the operator row's own read pump (RecvHalf::Loopback, retentive_cap==0 → evict-not-park) so a dead rc (a dropped IPC subscriber) never backs peer_w up; bounded_block_on parks the BROKER DISPATCH thread, not a net worker → no worker-pool exhaustion (full mechanism in the required_stages comment). Folds the status=online sub-check: a dead spt-hosted endpoint is marked OFFLINE within one reconcile tick on abrupt child death (broker exit-waiter reaps the session → B2 sees it absent) — PROVEN, no change. (v0.12.1)",
2026-06-19T05:17:21.5300781Z       "requiredStages": [
2026-06-19T05:17:21.5300871Z         "int"
2026-06-19T05:17:21.5300955Z       ],
2026-06-19T05:17:21.5301036Z       "stages": {
2026-06-19T05:17:21.5301122Z         "doc": {
2026-06-19T05:17:21.5301219Z           "complete": false,
2026-06-19T05:17:21.5301317Z           "evidence": []
2026-06-19T05:17:21.5301399Z         },
2026-06-19T05:17:21.5301490Z         "impl": {
2026-06-19T05:17:21.5301566Z           "complete": false,
2026-06-19T05:17:21.5301661Z           "evidence": []
2026-06-19T05:17:21.5301743Z         },
2026-06-19T05:17:21.5301823Z         "int": {
2026-06-19T05:17:21.5301909Z           "complete": true,
2026-06-19T05:17:21.5301994Z           "evidence": [
2026-06-19T05:17:21.5302086Z             {
2026-06-19T05:17:21.5302210Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-19T05:17:21.5302300Z               "line": 300
2026-06-19T05:17:21.5302377Z             }
2026-06-19T05:17:21.5302467Z           ]
2026-06-19T05:17:21.5302548Z         },
2026-06-19T05:17:21.5302643Z         "unit": {
2026-06-19T05:17:21.5302740Z           "complete": false,
2026-06-19T05:17:21.5302824Z           "evidence": []
2026-06-19T05:17:21.5302905Z         }
2026-06-19T05:17:21.5302993Z       }
2026-06-19T05:17:21.5303078Z     },
2026-06-19T05:17:21.5303162Z     {
2026-06-19T05:17:21.5303283Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-19T05:17:21.5305696Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-19T05:17:21.5305811Z       "requiredStages": [
2026-06-19T05:17:21.5305893Z         "doc",
2026-06-19T05:17:21.5305988Z         "impl",
2026-06-19T05:17:21.5306068Z         "unit",
2026-06-19T05:17:21.5306153Z         "int"
2026-06-19T05:17:21.5306239Z       ],
2026-06-19T05:17:21.5306323Z       "stages": {
2026-06-19T05:17:21.5306408Z         "doc": {
2026-06-19T05:17:21.5306489Z           "complete": true,
2026-06-19T05:17:21.5306585Z           "evidence": [
2026-06-19T05:17:21.5306671Z             {
2026-06-19T05:17:21.5306794Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5306886Z               "line": 333
2026-06-19T05:17:21.5306971Z             }
2026-06-19T05:17:21.5307057Z           ]
2026-06-19T05:17:21.5307138Z         },
2026-06-19T05:17:21.5307233Z         "impl": {
2026-06-19T05:17:21.5307324Z           "complete": true,
2026-06-19T05:17:21.5307418Z           "evidence": [
2026-06-19T05:17:21.5307506Z             {
2026-06-19T05:17:21.5307629Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5307806Z               "line": 494
2026-06-19T05:17:21.5307891Z             },
2026-06-19T05:17:21.5307972Z             {
2026-06-19T05:17:21.5308087Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5308173Z               "line": 499
2026-06-19T05:17:21.5308258Z             },
2026-06-19T05:17:21.5308339Z             {
2026-06-19T05:17:21.5308465Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5308625Z               "line": 874
2026-06-19T05:17:21.5308702Z             },
2026-06-19T05:17:21.5308785Z             {
2026-06-19T05:17:21.5308911Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5309072Z               "line": 915
2026-06-19T05:17:21.5309155Z             },
2026-06-19T05:17:21.5309231Z             {
2026-06-19T05:17:21.5309349Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5309440Z               "line": 926
2026-06-19T05:17:21.5309526Z             },
2026-06-19T05:17:21.5309611Z             {
2026-06-19T05:17:21.5309736Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.5309817Z               "line": 358
2026-06-19T05:17:21.5309903Z             }
2026-06-19T05:17:21.5309988Z           ]
2026-06-19T05:17:21.5310070Z         },
2026-06-19T05:17:21.5310156Z         "int": {
2026-06-19T05:17:21.5310250Z           "complete": true,
2026-06-19T05:17:21.5310332Z           "evidence": [
2026-06-19T05:17:21.5310414Z             {
2026-06-19T05:17:21.5310547Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-19T05:17:21.5310627Z               "line": 30
2026-06-19T05:17:21.5310709Z             }
2026-06-19T05:17:21.5310795Z           ]
2026-06-19T05:17:21.5310875Z         },
2026-06-19T05:17:21.5310957Z         "unit": {
2026-06-19T05:17:21.5311048Z           "complete": true,
2026-06-19T05:17:21.5311132Z           "evidence": [
2026-06-19T05:17:21.5311217Z             {
2026-06-19T05:17:21.5311346Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5311431Z               "line": 1493
2026-06-19T05:17:21.5311530Z             },
2026-06-19T05:17:21.5311620Z             {
2026-06-19T05:17:21.5311730Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5311821Z               "line": 1518
2026-06-19T05:17:21.5311892Z             },
2026-06-19T05:17:21.5311983Z             {
2026-06-19T05:17:21.5312088Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5312182Z               "line": 1535
2026-06-19T05:17:21.5312264Z             },
2026-06-19T05:17:21.5312346Z             {
2026-06-19T05:17:21.5312474Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5312555Z               "line": 1578
2026-06-19T05:17:21.5312637Z             }
2026-06-19T05:17:21.5312722Z           ]
2026-06-19T05:17:21.5312817Z         }
2026-06-19T05:17:21.5312903Z       }
2026-06-19T05:17:21.5312985Z     },
2026-06-19T05:17:21.5313065Z     {
2026-06-19T05:17:21.5313203Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
2026-06-19T05:17:21.5315718Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
2026-06-19T05:17:21.5315942Z       "requiredStages": [],
2026-06-19T05:17:21.5316027Z       "stages": {
2026-06-19T05:17:21.5316119Z         "doc": {
2026-06-19T05:17:21.5316223Z           "complete": false,
2026-06-19T05:17:21.5316314Z           "evidence": []
2026-06-19T05:17:21.5316405Z         },
2026-06-19T05:17:21.5316482Z         "impl": {
2026-06-19T05:17:21.5316571Z           "complete": false,
2026-06-19T05:17:21.5316656Z           "evidence": []
2026-06-19T05:17:21.5316851Z         },
2026-06-19T05:17:21.5316935Z         "int": {
2026-06-19T05:17:21.5317020Z           "complete": false,
2026-06-19T05:17:21.5317117Z           "evidence": []
2026-06-19T05:17:21.5317198Z         },
2026-06-19T05:17:21.5317288Z         "unit": {
2026-06-19T05:17:21.5317374Z           "complete": false,
2026-06-19T05:17:21.5317479Z           "evidence": []
2026-06-19T05:17:21.5317565Z         }
2026-06-19T05:17:21.5317645Z       }
2026-06-19T05:17:21.5317727Z     },
2026-06-19T05:17:21.5317808Z     {
2026-06-19T05:17:21.5317955Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
2026-06-19T05:17:21.5321665Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
2026-06-19T05:17:21.5321797Z       "requiredStages": [
2026-06-19T05:17:21.5321878Z         "impl",
2026-06-19T05:17:21.5321973Z         "unit",
2026-06-19T05:17:21.5322057Z         "int"
2026-06-19T05:17:21.5322142Z       ],
2026-06-19T05:17:21.5322228Z       "stages": {
2026-06-19T05:17:21.5322310Z         "doc": {
2026-06-19T05:17:21.5322400Z           "complete": false,
2026-06-19T05:17:21.5322485Z           "evidence": []
2026-06-19T05:17:21.5322567Z         },
2026-06-19T05:17:21.5322648Z         "impl": {
2026-06-19T05:17:21.5322747Z           "complete": true,
2026-06-19T05:17:21.5322824Z           "evidence": [
2026-06-19T05:17:21.5322921Z             {
2026-06-19T05:17:21.5323053Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5323139Z               "line": 558
2026-06-19T05:17:21.5323221Z             },
2026-06-19T05:17:21.5323306Z             {
2026-06-19T05:17:21.5323435Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5323521Z               "line": 582
2026-06-19T05:17:21.5323602Z             },
2026-06-19T05:17:21.5323683Z             {
2026-06-19T05:17:21.5323808Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5323902Z               "line": 608
2026-06-19T05:17:21.5323983Z             },
2026-06-19T05:17:21.5324064Z             {
2026-06-19T05:17:21.5324189Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5324273Z               "line": 667
2026-06-19T05:17:21.5324359Z             },
2026-06-19T05:17:21.5324447Z             {
2026-06-19T05:17:21.5324570Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5324764Z               "line": 89
2026-06-19T05:17:21.5324849Z             },
2026-06-19T05:17:21.5324933Z             {
2026-06-19T05:17:21.5325047Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5325134Z               "line": 134
2026-06-19T05:17:21.5325220Z             }
2026-06-19T05:17:21.5325300Z           ]
2026-06-19T05:17:21.5325386Z         },
2026-06-19T05:17:21.5325473Z         "int": {
2026-06-19T05:17:21.5325662Z           "complete": true,
2026-06-19T05:17:21.5325740Z           "evidence": [
2026-06-19T05:17:21.5325825Z             {
2026-06-19T05:17:21.5325977Z               "path": "crates/spt/tests/brain_restart_psyche_dup_e2e.rs",
2026-06-19T05:17:21.5326064Z               "line": 20
2026-06-19T05:17:21.5326149Z             }
2026-06-19T05:17:21.5326235Z           ]
2026-06-19T05:17:21.5326320Z         },
2026-06-19T05:17:21.5326408Z         "unit": {
2026-06-19T05:17:21.5326506Z           "complete": true,
2026-06-19T05:17:21.5326602Z           "evidence": [
2026-06-19T05:17:21.5326689Z             {
2026-06-19T05:17:21.5326811Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5326902Z               "line": 988
2026-06-19T05:17:21.5326994Z             },
2026-06-19T05:17:21.5327080Z             {
2026-06-19T05:17:21.5327192Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5327273Z               "line": 445
2026-06-19T05:17:21.5327364Z             }
2026-06-19T05:17:21.5327453Z           ]
2026-06-19T05:17:21.5327543Z         }
2026-06-19T05:17:21.5327634Z       }
2026-06-19T05:17:21.5327710Z     },
2026-06-19T05:17:21.5327805Z     {
2026-06-19T05:17:21.5327924Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-19T05:17:21.5330537Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-19T05:17:21.5330651Z       "requiredStages": [
2026-06-19T05:17:21.5330736Z         "doc",
2026-06-19T05:17:21.5330823Z         "impl",
2026-06-19T05:17:21.5330904Z         "unit",
2026-06-19T05:17:21.5330990Z         "int"
2026-06-19T05:17:21.5331070Z       ],
2026-06-19T05:17:21.5331151Z       "stages": {
2026-06-19T05:17:21.5331233Z         "doc": {
2026-06-19T05:17:21.5331333Z           "complete": true,
2026-06-19T05:17:21.5331427Z           "evidence": [
2026-06-19T05:17:21.5331515Z             {
2026-06-19T05:17:21.5331619Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5331719Z               "line": 302
2026-06-19T05:17:21.5331801Z             }
2026-06-19T05:17:21.5331886Z           ]
2026-06-19T05:17:21.5331967Z         },
2026-06-19T05:17:21.5332043Z         "impl": {
2026-06-19T05:17:21.5332135Z           "complete": true,
2026-06-19T05:17:21.5332215Z           "evidence": [
2026-06-19T05:17:21.5332300Z             {
2026-06-19T05:17:21.5332428Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.5332514Z               "line": 108
2026-06-19T05:17:21.5332593Z             },
2026-06-19T05:17:21.5332674Z             {
2026-06-19T05:17:21.5332798Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5332880Z               "line": 795
2026-06-19T05:17:21.5332965Z             },
2026-06-19T05:17:21.5333046Z             {
2026-06-19T05:17:21.5333261Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5333346Z               "line": 995
2026-06-19T05:17:21.5333428Z             },
2026-06-19T05:17:21.5333518Z             {
2026-06-19T05:17:21.5333632Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5333719Z               "line": 23
2026-06-19T05:17:21.5333804Z             },
2026-06-19T05:17:21.5333890Z             {
2026-06-19T05:17:21.5334014Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5334185Z               "line": 113
2026-06-19T05:17:21.5334276Z             },
2026-06-19T05:17:21.5334358Z             {
2026-06-19T05:17:21.5334481Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5334563Z               "line": 158
2026-06-19T05:17:21.5334644Z             },
2026-06-19T05:17:21.5334721Z             {
2026-06-19T05:17:21.5334838Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5334944Z               "line": 218
2026-06-19T05:17:21.5335031Z             },
2026-06-19T05:17:21.5335116Z             {
2026-06-19T05:17:21.5335233Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5335314Z               "line": 261
2026-06-19T05:17:21.5335395Z             },
2026-06-19T05:17:21.5335479Z             {
2026-06-19T05:17:21.5335603Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5335689Z               "line": 275
2026-06-19T05:17:21.5335780Z             },
2026-06-19T05:17:21.5335865Z             {
2026-06-19T05:17:21.5335990Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5336080Z               "line": 320
2026-06-19T05:17:21.5336165Z             },
2026-06-19T05:17:21.5336256Z             {
2026-06-19T05:17:21.5336371Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5336471Z               "line": 347
2026-06-19T05:17:21.5336561Z             },
2026-06-19T05:17:21.5336648Z             {
2026-06-19T05:17:21.5336767Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5336852Z               "line": 359
2026-06-19T05:17:21.5336939Z             },
2026-06-19T05:17:21.5337024Z             {
2026-06-19T05:17:21.5337152Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5337235Z               "line": 373
2026-06-19T05:17:21.5337316Z             },
2026-06-19T05:17:21.5337395Z             {
2026-06-19T05:17:21.5337501Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5337602Z               "line": 400
2026-06-19T05:17:21.5337678Z             },
2026-06-19T05:17:21.5337767Z             {
2026-06-19T05:17:21.5340748Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5340873Z               "line": 643
2026-06-19T05:17:21.5340958Z             },
2026-06-19T05:17:21.5341039Z             {
2026-06-19T05:17:21.5341178Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5341282Z               "line": 989
2026-06-19T05:17:21.5341373Z             },
2026-06-19T05:17:21.5341455Z             {
2026-06-19T05:17:21.5341578Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5341663Z               "line": 179
2026-06-19T05:17:21.5341741Z             },
2026-06-19T05:17:21.5341826Z             {
2026-06-19T05:17:21.5341935Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5342022Z               "line": 591
2026-06-19T05:17:21.5342112Z             },
2026-06-19T05:17:21.5342198Z             {
2026-06-19T05:17:21.5342307Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5342390Z               "line": 663
2026-06-19T05:17:21.5342479Z             },
2026-06-19T05:17:21.5342560Z             {
2026-06-19T05:17:21.5342671Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5342761Z               "line": 675
2026-06-19T05:17:21.5342836Z             },
2026-06-19T05:17:21.5343050Z             {
2026-06-19T05:17:21.5343153Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5343238Z               "line": 1159
2026-06-19T05:17:21.5343315Z             },
2026-06-19T05:17:21.5343397Z             {
2026-06-19T05:17:21.5343506Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5343591Z               "line": 183
2026-06-19T05:17:21.5343673Z             },
2026-06-19T05:17:21.5343754Z             {
2026-06-19T05:17:21.5343969Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5344050Z               "line": 260
2026-06-19T05:17:21.5344126Z             },
2026-06-19T05:17:21.5344211Z             {
2026-06-19T05:17:21.5344322Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5344421Z               "line": 271
2026-06-19T05:17:21.5344497Z             },
2026-06-19T05:17:21.5344574Z             {
2026-06-19T05:17:21.5344684Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5344784Z               "line": 324
2026-06-19T05:17:21.5344864Z             },
2026-06-19T05:17:21.5344947Z             {
2026-06-19T05:17:21.5345070Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5345160Z               "line": 56
2026-06-19T05:17:21.5345243Z             },
2026-06-19T05:17:21.5345328Z             {
2026-06-19T05:17:21.5345442Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5345533Z               "line": 188
2026-06-19T05:17:21.5345610Z             },
2026-06-19T05:17:21.5345690Z             {
2026-06-19T05:17:21.5345807Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:17:21.5345884Z               "line": 82
2026-06-19T05:17:21.5345974Z             },
2026-06-19T05:17:21.5346059Z             {
2026-06-19T05:17:21.5346177Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5346269Z               "line": 308
2026-06-19T05:17:21.5346354Z             },
2026-06-19T05:17:21.5346434Z             {
2026-06-19T05:17:21.5346550Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.5346635Z               "line": 424
2026-06-19T05:17:21.5346707Z             },
2026-06-19T05:17:21.5346792Z             {
2026-06-19T05:17:21.5346903Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5347003Z               "line": 1889
2026-06-19T05:17:21.5347083Z             }
2026-06-19T05:17:21.5347170Z           ]
2026-06-19T05:17:21.5347260Z         },
2026-06-19T05:17:21.5347341Z         "int": {
2026-06-19T05:17:21.5347441Z           "complete": true,
2026-06-19T05:17:21.5347523Z           "evidence": [
2026-06-19T05:17:21.5347608Z             {
2026-06-19T05:17:21.5347722Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-19T05:17:21.5347814Z               "line": 57
2026-06-19T05:17:21.5347895Z             },
2026-06-19T05:17:21.5347974Z             {
2026-06-19T05:17:21.5348085Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-19T05:17:21.5348181Z               "line": 41
2026-06-19T05:17:21.5348266Z             }
2026-06-19T05:17:21.5348346Z           ]
2026-06-19T05:17:21.5348437Z         },
2026-06-19T05:17:21.5348527Z         "unit": {
2026-06-19T05:17:21.5348616Z           "complete": true,
2026-06-19T05:17:21.5348710Z           "evidence": [
2026-06-19T05:17:21.5348792Z             {
2026-06-19T05:17:21.5348921Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.5349107Z               "line": 532
2026-06-19T05:17:21.5349188Z             },
2026-06-19T05:17:21.5349264Z             {
2026-06-19T05:17:21.5349383Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.5349465Z               "line": 756
2026-06-19T05:17:21.5349551Z             },
2026-06-19T05:17:21.5349635Z             {
2026-06-19T05:17:21.5349756Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5349841Z               "line": 1067
2026-06-19T05:17:21.5350047Z             },
2026-06-19T05:17:21.5350128Z             {
2026-06-19T05:17:21.5350251Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5350332Z               "line": 1101
2026-06-19T05:17:21.5350414Z             },
2026-06-19T05:17:21.5350498Z             {
2026-06-19T05:17:21.5350604Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5350695Z               "line": 1143
2026-06-19T05:17:21.5350772Z             },
2026-06-19T05:17:21.5350957Z             {
2026-06-19T05:17:21.5351063Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5351156Z               "line": 1215
2026-06-19T05:17:21.5351246Z             },
2026-06-19T05:17:21.5351327Z             {
2026-06-19T05:17:21.5351443Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5351523Z               "line": 1228
2026-06-19T05:17:21.5351608Z             },
2026-06-19T05:17:21.5351691Z             {
2026-06-19T05:17:21.5351814Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5351895Z               "line": 1251
2026-06-19T05:17:21.5351977Z             },
2026-06-19T05:17:21.5352067Z             {
2026-06-19T05:17:21.5352171Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5352267Z               "line": 1277
2026-06-19T05:17:21.5352344Z             },
2026-06-19T05:17:21.5352429Z             {
2026-06-19T05:17:21.5352553Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5352645Z               "line": 1291
2026-06-19T05:17:21.5352734Z             },
2026-06-19T05:17:21.5352815Z             {
2026-06-19T05:17:21.5352940Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5353021Z               "line": 1315
2026-06-19T05:17:21.5353106Z             },
2026-06-19T05:17:21.5353187Z             {
2026-06-19T05:17:21.5353303Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5353396Z               "line": 1447
2026-06-19T05:17:21.5353481Z             },
2026-06-19T05:17:21.5353562Z             {
2026-06-19T05:17:21.5353676Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5353761Z               "line": 1623
2026-06-19T05:17:21.5353841Z             },
2026-06-19T05:17:21.5353928Z             {
2026-06-19T05:17:21.5354042Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5354127Z               "line": 1678
2026-06-19T05:17:21.5354219Z             },
2026-06-19T05:17:21.5354300Z             {
2026-06-19T05:17:21.5354404Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5354495Z               "line": 1724
2026-06-19T05:17:21.5354572Z             },
2026-06-19T05:17:21.5354658Z             {
2026-06-19T05:17:21.5354776Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5354873Z               "line": 1769
2026-06-19T05:17:21.5354948Z             },
2026-06-19T05:17:21.5355039Z             {
2026-06-19T05:17:21.5355149Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5355235Z               "line": 1813
2026-06-19T05:17:21.5355315Z             },
2026-06-19T05:17:21.5355392Z             {
2026-06-19T05:17:21.5355517Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5355611Z               "line": 1855
2026-06-19T05:17:21.5355692Z             },
2026-06-19T05:17:21.5355774Z             {
2026-06-19T05:17:21.5355888Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5355992Z               "line": 1493
2026-06-19T05:17:21.5356074Z             },
2026-06-19T05:17:21.5356161Z             {
2026-06-19T05:17:21.5356283Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5356367Z               "line": 217
2026-06-19T05:17:21.5356454Z             },
2026-06-19T05:17:21.5356534Z             {
2026-06-19T05:17:21.5356647Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5356800Z               "line": 233
2026-06-19T05:17:21.5356881Z             },
2026-06-19T05:17:21.5356971Z             {
2026-06-19T05:17:21.5357081Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5357168Z               "line": 254
2026-06-19T05:17:21.5357253Z             },
2026-06-19T05:17:21.5357333Z             {
2026-06-19T05:17:21.5357449Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5357539Z               "line": 265
2026-06-19T05:17:21.5357691Z             },
2026-06-19T05:17:21.5357778Z             {
2026-06-19T05:17:21.5357897Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5357982Z               "line": 278
2026-06-19T05:17:21.5358064Z             },
2026-06-19T05:17:21.5358145Z             {
2026-06-19T05:17:21.5358259Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5358340Z               "line": 289
2026-06-19T05:17:21.5358422Z             },
2026-06-19T05:17:21.5358516Z             {
2026-06-19T05:17:21.5358631Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5358722Z               "line": 301
2026-06-19T05:17:21.5358807Z             },
2026-06-19T05:17:21.5358892Z             {
2026-06-19T05:17:21.5359096Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5359185Z               "line": 312
2026-06-19T05:17:21.5359266Z             },
2026-06-19T05:17:21.5359347Z             {
2026-06-19T05:17:21.5359477Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5359571Z               "line": 323
2026-06-19T05:17:21.5359648Z             },
2026-06-19T05:17:21.5359734Z             {
2026-06-19T05:17:21.5359834Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5359929Z               "line": 332
2026-06-19T05:17:21.5360006Z             },
2026-06-19T05:17:21.5360091Z             {
2026-06-19T05:17:21.5360210Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5360292Z               "line": 342
2026-06-19T05:17:21.5360378Z             },
2026-06-19T05:17:21.5360464Z             {
2026-06-19T05:17:21.5360568Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:17:21.5360650Z               "line": 358
2026-06-19T05:17:21.5360735Z             },
2026-06-19T05:17:21.5360816Z             {
2026-06-19T05:17:21.5360931Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5361012Z               "line": 758
2026-06-19T05:17:21.5361092Z             },
2026-06-19T05:17:21.5361178Z             {
2026-06-19T05:17:21.5361289Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5361374Z               "line": 794
2026-06-19T05:17:21.5361459Z             },
2026-06-19T05:17:21.5361542Z             {
2026-06-19T05:17:21.5361656Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.5361735Z               "line": 966
2026-06-19T05:17:21.5361821Z             },
2026-06-19T05:17:21.5361902Z             {
2026-06-19T05:17:21.5362013Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:17:21.5362097Z               "line": 144
2026-06-19T05:17:21.5362178Z             },
2026-06-19T05:17:21.5362270Z             {
2026-06-19T05:17:21.5362379Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:17:21.5362464Z               "line": 223
2026-06-19T05:17:21.5362542Z             },
2026-06-19T05:17:21.5362622Z             {
2026-06-19T05:17:21.5362741Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:17:21.5362818Z               "line": 292
2026-06-19T05:17:21.5362900Z             },
2026-06-19T05:17:21.5362984Z             {
2026-06-19T05:17:21.5363094Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-19T05:17:21.5363176Z               "line": 17
2026-06-19T05:17:21.5363261Z             },
2026-06-19T05:17:21.5363347Z             {
2026-06-19T05:17:21.5363462Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-19T05:17:21.5363656Z               "line": 104
2026-06-19T05:17:21.5363743Z             }
2026-06-19T05:17:21.5363830Z           ]
2026-06-19T05:17:21.5363910Z         }
2026-06-19T05:17:21.5363994Z       }
2026-06-19T05:17:21.5364079Z     },
2026-06-19T05:17:21.5364152Z     {
2026-06-19T05:17:21.5364264Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
2026-06-19T05:17:21.5367288Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
2026-06-19T05:17:21.5367508Z       "requiredStages": [
2026-06-19T05:17:21.5367607Z         "doc",
2026-06-19T05:17:21.5367689Z         "impl",
2026-06-19T05:17:21.5367766Z         "unit",
2026-06-19T05:17:21.5367851Z         "int"
2026-06-19T05:17:21.5367937Z       ],
2026-06-19T05:17:21.5368023Z       "stages": {
2026-06-19T05:17:21.5368099Z         "doc": {
2026-06-19T05:17:21.5368199Z           "complete": true,
2026-06-19T05:17:21.5368285Z           "evidence": [
2026-06-19T05:17:21.5368362Z             {
2026-06-19T05:17:21.5368480Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5368571Z               "line": 388
2026-06-19T05:17:21.5368653Z             }
2026-06-19T05:17:21.5368728Z           ]
2026-06-19T05:17:21.5368814Z         },
2026-06-19T05:17:21.5368900Z         "impl": {
2026-06-19T05:17:21.5369071Z           "complete": true,
2026-06-19T05:17:21.5369162Z           "evidence": [
2026-06-19T05:17:21.5369244Z             {
2026-06-19T05:17:21.5369372Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5369461Z               "line": 773
2026-06-19T05:17:21.5369557Z             },
2026-06-19T05:17:21.5369633Z             {
2026-06-19T05:17:21.5369750Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5369835Z               "line": 796
2026-06-19T05:17:21.5369912Z             }
2026-06-19T05:17:21.5369994Z           ]
2026-06-19T05:17:21.5370075Z         },
2026-06-19T05:17:21.5370169Z         "int": {
2026-06-19T05:17:21.5370261Z           "complete": true,
2026-06-19T05:17:21.5370342Z           "evidence": [
2026-06-19T05:17:21.5370422Z             {
2026-06-19T05:17:21.5370542Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:17:21.5370628Z               "line": 228
2026-06-19T05:17:21.5370713Z             },
2026-06-19T05:17:21.5370799Z             {
2026-06-19T05:17:21.5370909Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:17:21.5370989Z               "line": 468
2026-06-19T05:17:21.5371080Z             }
2026-06-19T05:17:21.5371162Z           ]
2026-06-19T05:17:21.5371243Z         },
2026-06-19T05:17:21.5371329Z         "unit": {
2026-06-19T05:17:21.5371424Z           "complete": true,
2026-06-19T05:17:21.5371501Z           "evidence": [
2026-06-19T05:17:21.5371581Z             {
2026-06-19T05:17:21.5371700Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.5371787Z               "line": 1495
2026-06-19T05:17:21.5371868Z             }
2026-06-19T05:17:21.5371943Z           ]
2026-06-19T05:17:21.5372136Z         }
2026-06-19T05:17:21.5372225Z       }
2026-06-19T05:17:21.5372305Z     },
2026-06-19T05:17:21.5372381Z     {
2026-06-19T05:17:21.5372496Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
2026-06-19T05:17:21.5376022Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
2026-06-19T05:17:21.5376244Z       "requiredStages": [
2026-06-19T05:17:21.5376336Z         "doc",
2026-06-19T05:17:21.5376416Z         "impl",
2026-06-19T05:17:21.5376507Z         "unit"
2026-06-19T05:17:21.5376584Z       ],
2026-06-19T05:17:21.5376670Z       "stages": {
2026-06-19T05:17:21.5376750Z         "doc": {
2026-06-19T05:17:21.5376850Z           "complete": true,
2026-06-19T05:17:21.5376932Z           "evidence": [
2026-06-19T05:17:21.5377013Z             {
2026-06-19T05:17:21.5377117Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5377214Z               "line": 395
2026-06-19T05:17:21.5377295Z             }
2026-06-19T05:17:21.5377379Z           ]
2026-06-19T05:17:21.5377460Z         },
2026-06-19T05:17:21.5377546Z         "impl": {
2026-06-19T05:17:21.5377631Z           "complete": true,
2026-06-19T05:17:21.5377715Z           "evidence": [
2026-06-19T05:17:21.5377796Z             {
2026-06-19T05:17:21.5377920Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5378011Z               "line": 75
2026-06-19T05:17:21.5378091Z             }
2026-06-19T05:17:21.5378177Z           ]
2026-06-19T05:17:21.5378259Z         },
2026-06-19T05:17:21.5378340Z         "int": {
2026-06-19T05:17:21.5378435Z           "complete": false,
2026-06-19T05:17:21.5378536Z           "evidence": []
2026-06-19T05:17:21.5378616Z         },
2026-06-19T05:17:21.5378706Z         "unit": {
2026-06-19T05:17:21.5378802Z           "complete": true,
2026-06-19T05:17:21.5378889Z           "evidence": [
2026-06-19T05:17:21.5379035Z             {
2026-06-19T05:17:21.5379150Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5379241Z               "line": 601
2026-06-19T05:17:21.5379321Z             }
2026-06-19T05:17:21.5379412Z           ]
2026-06-19T05:17:21.5379499Z         }
2026-06-19T05:17:21.5379580Z       }
2026-06-19T05:17:21.5379665Z     },
2026-06-19T05:17:21.5379746Z     {
2026-06-19T05:17:21.5379861Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-19T05:17:21.5380031Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-19T05:17:21.5380141Z       "requiredStages": [
2026-06-19T05:17:21.5380221Z         "impl",
2026-06-19T05:17:21.5380306Z         "unit"
2026-06-19T05:17:21.5380386Z       ],
2026-06-19T05:17:21.5380473Z       "stages": {
2026-06-19T05:17:21.5380559Z         "doc": {
2026-06-19T05:17:21.5380644Z           "complete": false,
2026-06-19T05:17:21.5380739Z           "evidence": []
2026-06-19T05:17:21.5380821Z         },
2026-06-19T05:17:21.5380907Z         "impl": {
2026-06-19T05:17:21.5381126Z           "complete": true,
2026-06-19T05:17:21.5381207Z           "evidence": [
2026-06-19T05:17:21.5381292Z             {
2026-06-19T05:17:21.5381413Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5381512Z               "line": 168
2026-06-19T05:17:21.5381598Z             },
2026-06-19T05:17:21.5381683Z             {
2026-06-19T05:17:21.5381794Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.5381874Z               "line": 18
2026-06-19T05:17:21.5382052Z             },
2026-06-19T05:17:21.5382127Z             {
2026-06-19T05:17:21.5382242Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.5382328Z               "line": 100
2026-06-19T05:17:21.5382409Z             }
2026-06-19T05:17:21.5382498Z           ]
2026-06-19T05:17:21.5382585Z         },
2026-06-19T05:17:21.5382667Z         "int": {
2026-06-19T05:17:21.5382753Z           "complete": false,
2026-06-19T05:17:21.5382851Z           "evidence": []
2026-06-19T05:17:21.5382946Z         },
2026-06-19T05:17:21.5383027Z         "unit": {
2026-06-19T05:17:21.5383124Z           "complete": true,
2026-06-19T05:17:21.5383203Z           "evidence": [
2026-06-19T05:17:21.5383294Z             {
2026-06-19T05:17:21.5383419Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5383509Z               "line": 853
2026-06-19T05:17:21.5383594Z             },
2026-06-19T05:17:21.5383676Z             {
2026-06-19T05:17:21.5383781Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.5383870Z               "line": 161
2026-06-19T05:17:21.5383952Z             },
2026-06-19T05:17:21.5384038Z             {
2026-06-19T05:17:21.5384148Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.5384243Z               "line": 233
2026-06-19T05:17:21.5384325Z             }
2026-06-19T05:17:21.5384410Z           ]
2026-06-19T05:17:21.5384486Z         }
2026-06-19T05:17:21.5384572Z       }
2026-06-19T05:17:21.5384649Z     },
2026-06-19T05:17:21.5384734Z     {
2026-06-19T05:17:21.5384863Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-19T05:17:21.5385276Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-19T05:17:21.5385376Z       "requiredStages": [
2026-06-19T05:17:21.5385460Z         "impl",
2026-06-19T05:17:21.5385546Z         "unit"
2026-06-19T05:17:21.5385633Z       ],
2026-06-19T05:17:21.5385723Z       "stages": {
2026-06-19T05:17:21.5385813Z         "doc": {
2026-06-19T05:17:21.5385904Z           "complete": true,
2026-06-19T05:17:21.5385990Z           "evidence": [
2026-06-19T05:17:21.5386075Z             {
2026-06-19T05:17:21.5386190Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5386286Z               "line": 220
2026-06-19T05:17:21.5386371Z             }
2026-06-19T05:17:21.5386466Z           ]
2026-06-19T05:17:21.5386548Z         },
2026-06-19T05:17:21.5386643Z         "impl": {
2026-06-19T05:17:21.5386728Z           "complete": true,
2026-06-19T05:17:21.5386819Z           "evidence": [
2026-06-19T05:17:21.5386896Z             {
2026-06-19T05:17:21.5387020Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.5387119Z               "line": 315
2026-06-19T05:17:21.5387207Z             },
2026-06-19T05:17:21.5387286Z             {
2026-06-19T05:17:21.5387415Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5387512Z               "line": 356
2026-06-19T05:17:21.5387597Z             },
2026-06-19T05:17:21.5387682Z             {
2026-06-19T05:17:21.5387807Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5387893Z               "line": 578
2026-06-19T05:17:21.5387972Z             },
2026-06-19T05:17:21.5388057Z             {
2026-06-19T05:17:21.5388182Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5388261Z               "line": 77
2026-06-19T05:17:21.5388423Z             }
2026-06-19T05:17:21.5388514Z           ]
2026-06-19T05:17:21.5388585Z         },
2026-06-19T05:17:21.5388670Z         "int": {
2026-06-19T05:17:21.5388766Z           "complete": false,
2026-06-19T05:17:21.5388862Z           "evidence": []
2026-06-19T05:17:21.5389023Z         },
2026-06-19T05:17:21.5389110Z         "unit": {
2026-06-19T05:17:21.5389205Z           "complete": true,
2026-06-19T05:17:21.5389290Z           "evidence": [
2026-06-19T05:17:21.5389377Z             {
2026-06-19T05:17:21.5389595Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5389691Z               "line": 747
2026-06-19T05:17:21.5389778Z             },
2026-06-19T05:17:21.5389853Z             {
2026-06-19T05:17:21.5389958Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5390050Z               "line": 785
2026-06-19T05:17:21.5390135Z             },
2026-06-19T05:17:21.5390220Z             {
2026-06-19T05:17:21.5390336Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5390436Z               "line": 166
2026-06-19T05:17:21.5390520Z             }
2026-06-19T05:17:21.5390614Z           ]
2026-06-19T05:17:21.5390701Z         }
2026-06-19T05:17:21.5390781Z       }
2026-06-19T05:17:21.5390861Z     },
2026-06-19T05:17:21.5390946Z     {
2026-06-19T05:17:21.5391066Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-19T05:17:21.5391604Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-19T05:17:21.5391714Z       "requiredStages": [
2026-06-19T05:17:21.5391800Z         "impl",
2026-06-19T05:17:21.5391881Z         "unit"
2026-06-19T05:17:21.5391968Z       ],
2026-06-19T05:17:21.5392048Z       "stages": {
2026-06-19T05:17:21.5392129Z         "doc": {
2026-06-19T05:17:21.5392219Z           "complete": false,
2026-06-19T05:17:21.5392312Z           "evidence": []
2026-06-19T05:17:21.5392396Z         },
2026-06-19T05:17:21.5392496Z         "impl": {
2026-06-19T05:17:21.5392587Z           "complete": true,
2026-06-19T05:17:21.5392678Z           "evidence": [
2026-06-19T05:17:21.5392763Z             {
2026-06-19T05:17:21.5392888Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:17:21.5392988Z               "line": 22
2026-06-19T05:17:21.5393073Z             },
2026-06-19T05:17:21.5393155Z             {
2026-06-19T05:17:21.5393284Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5393369Z               "line": 487
2026-06-19T05:17:21.5393453Z             },
2026-06-19T05:17:21.5393539Z             {
2026-06-19T05:17:21.5393660Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:17:21.5393745Z               "line": 17
2026-06-19T05:17:21.5393830Z             },
2026-06-19T05:17:21.5393912Z             {
2026-06-19T05:17:21.5394031Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:17:21.5394125Z               "line": 147
2026-06-19T05:17:21.5394203Z             },
2026-06-19T05:17:21.5394284Z             {
2026-06-19T05:17:21.5394412Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5394507Z               "line": 226
2026-06-19T05:17:21.5394594Z             },
2026-06-19T05:17:21.5394674Z             {
2026-06-19T05:17:21.5394808Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5394890Z               "line": 251
2026-06-19T05:17:21.5394980Z             },
2026-06-19T05:17:21.5395061Z             {
2026-06-19T05:17:21.5395190Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5395290Z               "line": 277
2026-06-19T05:17:21.5395366Z             },
2026-06-19T05:17:21.5395452Z             {
2026-06-19T05:17:21.5395562Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.5395651Z               "line": 124
2026-06-19T05:17:21.5395737Z             },
2026-06-19T05:17:21.5395917Z             {
2026-06-19T05:17:21.5396044Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.5396130Z               "line": 224
2026-06-19T05:17:21.5396216Z             }
2026-06-19T05:17:21.5396302Z           ]
2026-06-19T05:17:21.5396387Z         },
2026-06-19T05:17:21.5396469Z         "int": {
2026-06-19T05:17:21.5396564Z           "complete": false,
2026-06-19T05:17:21.5396649Z           "evidence": []
2026-06-19T05:17:21.5396735Z         },
2026-06-19T05:17:21.5396888Z         "unit": {
2026-06-19T05:17:21.5396974Z           "complete": true,
2026-06-19T05:17:21.5397070Z           "evidence": [
2026-06-19T05:17:21.5397156Z             {
2026-06-19T05:17:21.5397279Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:17:21.5397374Z               "line": 63
2026-06-19T05:17:21.5397461Z             },
2026-06-19T05:17:21.5397546Z             {
2026-06-19T05:17:21.5397665Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:17:21.5397767Z               "line": 73
2026-06-19T05:17:21.5397851Z             },
2026-06-19T05:17:21.5397937Z             {
2026-06-19T05:17:21.5398062Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:17:21.5398148Z               "line": 85
2026-06-19T05:17:21.5398233Z             },
2026-06-19T05:17:21.5398310Z             {
2026-06-19T05:17:21.5398430Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:17:21.5398518Z               "line": 346
2026-06-19T05:17:21.5398608Z             },
2026-06-19T05:17:21.5398694Z             {
2026-06-19T05:17:21.5398812Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:17:21.5398901Z               "line": 281
2026-06-19T05:17:21.5399069Z             },
2026-06-19T05:17:21.5399155Z             {
2026-06-19T05:17:21.5399283Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:17:21.5399375Z               "line": 322
2026-06-19T05:17:21.5399451Z             },
2026-06-19T05:17:21.5399540Z             {
2026-06-19T05:17:21.5399661Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:17:21.5399746Z               "line": 360
2026-06-19T05:17:21.5399841Z             },
2026-06-19T05:17:21.5399937Z             {
2026-06-19T05:17:21.5400056Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5400142Z               "line": 688
2026-06-19T05:17:21.5400227Z             },
2026-06-19T05:17:21.5400314Z             {
2026-06-19T05:17:21.5400437Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.5400528Z               "line": 397
2026-06-19T05:17:21.5400615Z             },
2026-06-19T05:17:21.5400695Z             {
2026-06-19T05:17:21.5400814Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.5400906Z               "line": 440
2026-06-19T05:17:21.5400992Z             }
2026-06-19T05:17:21.5401075Z           ]
2026-06-19T05:17:21.5401156Z         }
2026-06-19T05:17:21.5401251Z       }
2026-06-19T05:17:21.5401337Z     },
2026-06-19T05:17:21.5401416Z     {
2026-06-19T05:17:21.5401520Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-19T05:17:21.5401735Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-19T05:17:21.5401825Z       "requiredStages": [
2026-06-19T05:17:21.5401913Z         "impl",
2026-06-19T05:17:21.5401998Z         "unit"
2026-06-19T05:17:21.5402074Z       ],
2026-06-19T05:17:21.5402164Z       "stages": {
2026-06-19T05:17:21.5402247Z         "doc": {
2026-06-19T05:17:21.5402346Z           "complete": false,
2026-06-19T05:17:21.5402431Z           "evidence": []
2026-06-19T05:17:21.5402523Z         },
2026-06-19T05:17:21.5402603Z         "impl": {
2026-06-19T05:17:21.5402694Z           "complete": true,
2026-06-19T05:17:21.5402789Z           "evidence": [
2026-06-19T05:17:21.5402872Z             {
2026-06-19T05:17:21.5402995Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:17:21.5403080Z               "line": 169
2026-06-19T05:17:21.5403271Z             }
2026-06-19T05:17:21.5403347Z           ]
2026-06-19T05:17:21.5403433Z         },
2026-06-19T05:17:21.5403516Z         "int": {
2026-06-19T05:17:21.5403609Z           "complete": true,
2026-06-19T05:17:21.5403705Z           "evidence": [
2026-06-19T05:17:21.5403787Z             {
2026-06-19T05:17:21.5403905Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-19T05:17:21.5404009Z               "line": 44
2026-06-19T05:17:21.5404090Z             },
2026-06-19T05:17:21.5404281Z             {
2026-06-19T05:17:21.5404385Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-19T05:17:21.5404477Z               "line": 66
2026-06-19T05:17:21.5404563Z             }
2026-06-19T05:17:21.5404643Z           ]
2026-06-19T05:17:21.5404724Z         },
2026-06-19T05:17:21.5404806Z         "unit": {
2026-06-19T05:17:21.5404906Z           "complete": true,
2026-06-19T05:17:21.5405000Z           "evidence": [
2026-06-19T05:17:21.5405082Z             {
2026-06-19T05:17:21.5405197Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:17:21.5405291Z               "line": 186
2026-06-19T05:17:21.5405373Z             },
2026-06-19T05:17:21.5405455Z             {
2026-06-19T05:17:21.5405559Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:17:21.5405649Z               "line": 238
2026-06-19T05:17:21.5405737Z             },
2026-06-19T05:17:21.5405817Z             {
2026-06-19T05:17:21.5405926Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:17:21.5406026Z               "line": 266
2026-06-19T05:17:21.5406108Z             }
2026-06-19T05:17:21.5406193Z           ]
2026-06-19T05:17:21.5406278Z         }
2026-06-19T05:17:21.5406368Z       }
2026-06-19T05:17:21.5406449Z     },
2026-06-19T05:17:21.5406538Z     {
2026-06-19T05:17:21.5406661Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-19T05:17:21.5407068Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-19T05:17:21.5407177Z       "requiredStages": [
2026-06-19T05:17:21.5407257Z         "impl",
2026-06-19T05:17:21.5407344Z         "unit",
2026-06-19T05:17:21.5407430Z         "int"
2026-06-19T05:17:21.5407510Z       ],
2026-06-19T05:17:21.5407596Z       "stages": {
2026-06-19T05:17:21.5407678Z         "doc": {
2026-06-19T05:17:21.5407773Z           "complete": false,
2026-06-19T05:17:21.5407854Z           "evidence": []
2026-06-19T05:17:21.5407939Z         },
2026-06-19T05:17:21.5408026Z         "impl": {
2026-06-19T05:17:21.5408121Z           "complete": true,
2026-06-19T05:17:21.5408211Z           "evidence": [
2026-06-19T05:17:21.5408289Z             {
2026-06-19T05:17:21.5408412Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5408497Z               "line": 178
2026-06-19T05:17:21.5408579Z             },
2026-06-19T05:17:21.5408665Z             {
2026-06-19T05:17:21.5408788Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5408894Z               "line": 226
2026-06-19T05:17:21.5409060Z             },
2026-06-19T05:17:21.5409150Z             {
2026-06-19T05:17:21.5409259Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.5409349Z               "line": 79
2026-06-19T05:17:21.5409438Z             },
2026-06-19T05:17:21.5409523Z             {
2026-06-19T05:17:21.5409630Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.5409711Z               "line": 52
2026-06-19T05:17:21.5409795Z             },
2026-06-19T05:17:21.5409877Z             {
2026-06-19T05:17:21.5409996Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5412597Z               "line": 251
2026-06-19T05:17:21.5412696Z             },
2026-06-19T05:17:21.5412788Z             {
2026-06-19T05:17:21.5412907Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5412991Z               "line": 27
2026-06-19T05:17:21.5413211Z             },
2026-06-19T05:17:21.5413296Z             {
2026-06-19T05:17:21.5413412Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5413502Z               "line": 79
2026-06-19T05:17:21.5413578Z             },
2026-06-19T05:17:21.5413660Z             {
2026-06-19T05:17:21.5413780Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5413864Z               "line": 102
2026-06-19T05:17:21.5413945Z             },
2026-06-19T05:17:21.5414023Z             {
2026-06-19T05:17:21.5414232Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5414323Z               "line": 116
2026-06-19T05:17:21.5414405Z             }
2026-06-19T05:17:21.5414489Z           ]
2026-06-19T05:17:21.5414574Z         },
2026-06-19T05:17:21.5414660Z         "int": {
2026-06-19T05:17:21.5414756Z           "complete": true,
2026-06-19T05:17:21.5414841Z           "evidence": [
2026-06-19T05:17:21.5414926Z             {
2026-06-19T05:17:21.5415056Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-19T05:17:21.5415151Z               "line": 43
2026-06-19T05:17:21.5415237Z             }
2026-06-19T05:17:21.5415318Z           ]
2026-06-19T05:17:21.5415409Z         },
2026-06-19T05:17:21.5415480Z         "unit": {
2026-06-19T05:17:21.5415566Z           "complete": true,
2026-06-19T05:17:21.5415647Z           "evidence": [
2026-06-19T05:17:21.5415738Z             {
2026-06-19T05:17:21.5415861Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5415948Z               "line": 678
2026-06-19T05:17:21.5416029Z             },
2026-06-19T05:17:21.5416114Z             {
2026-06-19T05:17:21.5416238Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5416320Z               "line": 469
2026-06-19T05:17:21.5416405Z             },
2026-06-19T05:17:21.5416491Z             {
2026-06-19T05:17:21.5416601Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5416682Z               "line": 124
2026-06-19T05:17:21.5416767Z             },
2026-06-19T05:17:21.5416847Z             {
2026-06-19T05:17:21.5416962Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5417056Z               "line": 143
2026-06-19T05:17:21.5417140Z             },
2026-06-19T05:17:21.5417226Z             {
2026-06-19T05:17:21.5417342Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5417432Z               "line": 160
2026-06-19T05:17:21.5417517Z             },
2026-06-19T05:17:21.5417599Z             {
2026-06-19T05:17:21.5417704Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5417789Z               "line": 187
2026-06-19T05:17:21.5417875Z             },
2026-06-19T05:17:21.5417957Z             {
2026-06-19T05:17:21.5418070Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:17:21.5418156Z               "line": 206
2026-06-19T05:17:21.5418243Z             },
2026-06-19T05:17:21.5418328Z             {
2026-06-19T05:17:21.5418456Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5418544Z               "line": 229
2026-06-19T05:17:21.5418628Z             }
2026-06-19T05:17:21.5418714Z           ]
2026-06-19T05:17:21.5418805Z         }
2026-06-19T05:17:21.5418887Z       }
2026-06-19T05:17:21.5419048Z     },
2026-06-19T05:17:21.5419120Z     {
2026-06-19T05:17:21.5419235Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-19T05:17:21.5419867Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-19T05:17:21.5419970Z       "requiredStages": [
2026-06-19T05:17:21.5420045Z         "impl",
2026-06-19T05:17:21.5420127Z         "unit"
2026-06-19T05:17:21.5420213Z       ],
2026-06-19T05:17:21.5420304Z       "stages": {
2026-06-19T05:17:21.5420384Z         "doc": {
2026-06-19T05:17:21.5420581Z           "complete": false,
2026-06-19T05:17:21.5420670Z           "evidence": []
2026-06-19T05:17:21.5420757Z         },
2026-06-19T05:17:21.5420829Z         "impl": {
2026-06-19T05:17:21.5420924Z           "complete": true,
2026-06-19T05:17:21.5421008Z           "evidence": [
2026-06-19T05:17:21.5421091Z             {
2026-06-19T05:17:21.5421219Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5421300Z               "line": 622
2026-06-19T05:17:21.5421386Z             },
2026-06-19T05:17:21.5421638Z             {
2026-06-19T05:17:21.5421807Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5421905Z               "line": 840
2026-06-19T05:17:21.5421982Z             }
2026-06-19T05:17:21.5422064Z           ]
2026-06-19T05:17:21.5422145Z         },
2026-06-19T05:17:21.5422229Z         "int": {
2026-06-19T05:17:21.5422314Z           "complete": false,
2026-06-19T05:17:21.5422400Z           "evidence": []
2026-06-19T05:17:21.5422490Z         },
2026-06-19T05:17:21.5422574Z         "unit": {
2026-06-19T05:17:21.5422660Z           "complete": true,
2026-06-19T05:17:21.5422747Z           "evidence": [
2026-06-19T05:17:21.5422828Z             {
2026-06-19T05:17:21.5422960Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-19T05:17:21.5423052Z               "line": 161
2026-06-19T05:17:21.5423133Z             }
2026-06-19T05:17:21.5423218Z           ]
2026-06-19T05:17:21.5423294Z         }
2026-06-19T05:17:21.5423372Z       }
2026-06-19T05:17:21.5423457Z     },
2026-06-19T05:17:21.5423532Z     {
2026-06-19T05:17:21.5423653Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
2026-06-19T05:17:21.5425415Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
2026-06-19T05:17:21.5425529Z       "requiredStages": [
2026-06-19T05:17:21.5425616Z         "impl",
2026-06-19T05:17:21.5425707Z         "unit"
2026-06-19T05:17:21.5425787Z       ],
2026-06-19T05:17:21.5425874Z       "stages": {
2026-06-19T05:17:21.5425964Z         "doc": {
2026-06-19T05:17:21.5426064Z           "complete": false,
2026-06-19T05:17:21.5426154Z           "evidence": []
2026-06-19T05:17:21.5426246Z         },
2026-06-19T05:17:21.5426336Z         "impl": {
2026-06-19T05:17:21.5426421Z           "complete": true,
2026-06-19T05:17:21.5426513Z           "evidence": [
2026-06-19T05:17:21.5426598Z             {
2026-06-19T05:17:21.5426712Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.5426798Z               "line": 257
2026-06-19T05:17:21.5426885Z             }
2026-06-19T05:17:21.5426965Z           ]
2026-06-19T05:17:21.5427041Z         },
2026-06-19T05:17:21.5427122Z         "int": {
2026-06-19T05:17:21.5427219Z           "complete": false,
2026-06-19T05:17:21.5427308Z           "evidence": []
2026-06-19T05:17:21.5427393Z         },
2026-06-19T05:17:21.5427483Z         "unit": {
2026-06-19T05:17:21.5427569Z           "complete": true,
2026-06-19T05:17:21.5427653Z           "evidence": [
2026-06-19T05:17:21.5427738Z             {
2026-06-19T05:17:21.5427863Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.5427953Z               "line": 360
2026-06-19T05:17:21.5428030Z             }
2026-06-19T05:17:21.5428115Z           ]
2026-06-19T05:17:21.5428197Z         }
2026-06-19T05:17:21.5428278Z       }
2026-06-19T05:17:21.5428354Z     },
2026-06-19T05:17:21.5428435Z     {
2026-06-19T05:17:21.5428550Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
2026-06-19T05:17:21.5430408Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
2026-06-19T05:17:21.5430707Z       "requiredStages": [
2026-06-19T05:17:21.5430797Z         "impl",
2026-06-19T05:17:21.5430873Z         "unit"
2026-06-19T05:17:21.5430959Z       ],
2026-06-19T05:17:21.5431045Z       "stages": {
2026-06-19T05:17:21.5431131Z         "doc": {
2026-06-19T05:17:21.5431221Z           "complete": false,
2026-06-19T05:17:21.5431302Z           "evidence": []
2026-06-19T05:17:21.5431398Z         },
2026-06-19T05:17:21.5431479Z         "impl": {
2026-06-19T05:17:21.5431578Z           "complete": true,
2026-06-19T05:17:21.5431656Z           "evidence": [
2026-06-19T05:17:21.5431741Z             {
2026-06-19T05:17:21.5431874Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5431966Z               "line": 1018
2026-06-19T05:17:21.5432047Z             },
2026-06-19T05:17:21.5432126Z             {
2026-06-19T05:17:21.5432251Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5432352Z               "line": 278
2026-06-19T05:17:21.5432427Z             },
2026-06-19T05:17:21.5432513Z             {
2026-06-19T05:17:21.5432629Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5432714Z               "line": 311
2026-06-19T05:17:21.5432784Z             },
2026-06-19T05:17:21.5432874Z             {
2026-06-19T05:17:21.5432984Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-19T05:17:21.5433073Z               "line": 26
2026-06-19T05:17:21.5433172Z             }
2026-06-19T05:17:21.5433249Z           ]
2026-06-19T05:17:21.5433335Z         },
2026-06-19T05:17:21.5433416Z         "int": {
2026-06-19T05:17:21.5433501Z           "complete": false,
2026-06-19T05:17:21.5433593Z           "evidence": []
2026-06-19T05:17:21.5433678Z         },
2026-06-19T05:17:21.5433764Z         "unit": {
2026-06-19T05:17:21.5433845Z           "complete": true,
2026-06-19T05:17:21.5433927Z           "evidence": [
2026-06-19T05:17:21.5434017Z             {
2026-06-19T05:17:21.5434121Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-19T05:17:21.5434213Z               "line": 271
2026-06-19T05:17:21.5434294Z             },
2026-06-19T05:17:21.5434380Z             {
2026-06-19T05:17:21.5434484Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-19T05:17:21.5434571Z               "line": 348
2026-06-19T05:17:21.5434651Z             }
2026-06-19T05:17:21.5434732Z           ]
2026-06-19T05:17:21.5434823Z         }
2026-06-19T05:17:21.5434910Z       }
2026-06-19T05:17:21.5434993Z     },
2026-06-19T05:17:21.5435080Z     {
2026-06-19T05:17:21.5435186Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-19T05:17:21.5435366Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-19T05:17:21.5435463Z       "requiredStages": [
2026-06-19T05:17:21.5435558Z         "impl",
2026-06-19T05:17:21.5435642Z         "unit"
2026-06-19T05:17:21.5435727Z       ],
2026-06-19T05:17:21.5435809Z       "stages": {
2026-06-19T05:17:21.5435900Z         "doc": {
2026-06-19T05:17:21.5435994Z           "complete": false,
2026-06-19T05:17:21.5436080Z           "evidence": []
2026-06-19T05:17:21.5436157Z         },
2026-06-19T05:17:21.5436248Z         "impl": {
2026-06-19T05:17:21.5436347Z           "complete": true,
2026-06-19T05:17:21.5436439Z           "evidence": [
2026-06-19T05:17:21.5436529Z             {
2026-06-19T05:17:21.5436642Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5436811Z               "line": 40
2026-06-19T05:17:21.5436905Z             },
2026-06-19T05:17:21.5436986Z             {
2026-06-19T05:17:21.5437107Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5437191Z               "line": 103
2026-06-19T05:17:21.5437282Z             },
2026-06-19T05:17:21.5437363Z             {
2026-06-19T05:17:21.5437478Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5437568Z               "line": 218
2026-06-19T05:17:21.5437741Z             },
2026-06-19T05:17:21.5437821Z             {
2026-06-19T05:17:21.5437925Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5438015Z               "line": 323
2026-06-19T05:17:21.5438097Z             }
2026-06-19T05:17:21.5438185Z           ]
2026-06-19T05:17:21.5438270Z         },
2026-06-19T05:17:21.5438352Z         "int": {
2026-06-19T05:17:21.5438443Z           "complete": false,
2026-06-19T05:17:21.5438533Z           "evidence": []
2026-06-19T05:17:21.5438613Z         },
2026-06-19T05:17:21.5438695Z         "unit": {
2026-06-19T05:17:21.5438795Z           "complete": true,
2026-06-19T05:17:21.5438885Z           "evidence": [
2026-06-19T05:17:21.5439020Z             {
2026-06-19T05:17:21.5439120Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5439200Z               "line": 361
2026-06-19T05:17:21.5439281Z             },
2026-06-19T05:17:21.5439368Z             {
2026-06-19T05:17:21.5439472Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5439572Z               "line": 433
2026-06-19T05:17:21.5439659Z             },
2026-06-19T05:17:21.5439739Z             {
2026-06-19T05:17:21.5439849Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5439935Z               "line": 496
2026-06-19T05:17:21.5440021Z             },
2026-06-19T05:17:21.5440106Z             {
2026-06-19T05:17:21.5440220Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5440308Z               "line": 517
2026-06-19T05:17:21.5440402Z             }
2026-06-19T05:17:21.5440488Z           ]
2026-06-19T05:17:21.5440570Z         }
2026-06-19T05:17:21.5440656Z       }
2026-06-19T05:17:21.5440745Z     },
2026-06-19T05:17:21.5440825Z     {
2026-06-19T05:17:21.5440935Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
2026-06-19T05:17:21.5443199Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
2026-06-19T05:17:21.5443307Z       "requiredStages": [
2026-06-19T05:17:21.5443382Z         "impl",
2026-06-19T05:17:21.5443463Z         "unit"
2026-06-19T05:17:21.5443544Z       ],
2026-06-19T05:17:21.5443633Z       "stages": {
2026-06-19T05:17:21.5443723Z         "doc": {
2026-06-19T05:17:21.5443814Z           "complete": false,
2026-06-19T05:17:21.5443905Z           "evidence": []
2026-06-19T05:17:21.5444000Z         },
2026-06-19T05:17:21.5444086Z         "impl": {
2026-06-19T05:17:21.5444163Z           "complete": true,
2026-06-19T05:17:21.5444263Z           "evidence": [
2026-06-19T05:17:21.5444352Z             {
2026-06-19T05:17:21.5444468Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.5444563Z               "line": 402
2026-06-19T05:17:21.5444648Z             },
2026-06-19T05:17:21.5444725Z             {
2026-06-19T05:17:21.5444844Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.5445040Z               "line": 446
2026-06-19T05:17:21.5445126Z             }
2026-06-19T05:17:21.5445211Z           ]
2026-06-19T05:17:21.5445297Z         },
2026-06-19T05:17:21.5445373Z         "int": {
2026-06-19T05:17:21.5445470Z           "complete": false,
2026-06-19T05:17:21.5445549Z           "evidence": []
2026-06-19T05:17:21.5445635Z         },
2026-06-19T05:17:21.5445732Z         "unit": {
2026-06-19T05:17:21.5445808Z           "complete": true,
2026-06-19T05:17:21.5445989Z           "evidence": [
2026-06-19T05:17:21.5446070Z             {
2026-06-19T05:17:21.5446198Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.5446287Z               "line": 910
2026-06-19T05:17:21.5446378Z             }
2026-06-19T05:17:21.5446465Z           ]
2026-06-19T05:17:21.5446545Z         }
2026-06-19T05:17:21.5446631Z       }
2026-06-19T05:17:21.5446707Z     },
2026-06-19T05:17:21.5446798Z     {
2026-06-19T05:17:21.5446926Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-19T05:17:21.5447056Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-19T05:17:21.5447152Z       "requiredStages": [
2026-06-19T05:17:21.5447236Z         "impl",
2026-06-19T05:17:21.5447318Z         "unit"
2026-06-19T05:17:21.5447404Z       ],
2026-06-19T05:17:21.5447485Z       "stages": {
2026-06-19T05:17:21.5447560Z         "doc": {
2026-06-19T05:17:21.5447662Z           "complete": false,
2026-06-19T05:17:21.5447761Z           "evidence": []
2026-06-19T05:17:21.5447851Z         },
2026-06-19T05:17:21.5447938Z         "impl": {
2026-06-19T05:17:21.5448025Z           "complete": true,
2026-06-19T05:17:21.5448108Z           "evidence": [
2026-06-19T05:17:21.5448185Z             {
2026-06-19T05:17:21.5448306Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5448396Z               "line": 116
2026-06-19T05:17:21.5448475Z             },
2026-06-19T05:17:21.5448556Z             {
2026-06-19T05:17:21.5448671Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5448764Z               "line": 211
2026-06-19T05:17:21.5448845Z             }
2026-06-19T05:17:21.5448935Z           ]
2026-06-19T05:17:21.5449093Z         },
2026-06-19T05:17:21.5449178Z         "int": {
2026-06-19T05:17:21.5449265Z           "complete": false,
2026-06-19T05:17:21.5449346Z           "evidence": []
2026-06-19T05:17:21.5449431Z         },
2026-06-19T05:17:21.5449512Z         "unit": {
2026-06-19T05:17:21.5449609Z           "complete": true,
2026-06-19T05:17:21.5449709Z           "evidence": [
2026-06-19T05:17:21.5449798Z             {
2026-06-19T05:17:21.5449924Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5450009Z               "line": 388
2026-06-19T05:17:21.5450089Z             },
2026-06-19T05:17:21.5450175Z             {
2026-06-19T05:17:21.5450290Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5450380Z               "line": 469
2026-06-19T05:17:21.5450466Z             }
2026-06-19T05:17:21.5450553Z           ]
2026-06-19T05:17:21.5450633Z         }
2026-06-19T05:17:21.5450719Z       }
2026-06-19T05:17:21.5450800Z     },
2026-06-19T05:17:21.5450883Z     {
2026-06-19T05:17:21.5451014Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-19T05:17:21.5452074Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-19T05:17:21.5452185Z       "requiredStages": [
2026-06-19T05:17:21.5452275Z         "impl",
2026-06-19T05:17:21.5452360Z         "unit"
2026-06-19T05:17:21.5452457Z       ],
2026-06-19T05:17:21.5452542Z       "stages": {
2026-06-19T05:17:21.5452632Z         "doc": {
2026-06-19T05:17:21.5452723Z           "complete": true,
2026-06-19T05:17:21.5452933Z           "evidence": [
2026-06-19T05:17:21.5453018Z             {
2026-06-19T05:17:21.5453125Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5453214Z               "line": 206
2026-06-19T05:17:21.5453295Z             }
2026-06-19T05:17:21.5453382Z           ]
2026-06-19T05:17:21.5453463Z         },
2026-06-19T05:17:21.5453547Z         "impl": {
2026-06-19T05:17:21.5453629Z           "complete": true,
2026-06-19T05:17:21.5453721Z           "evidence": [
2026-06-19T05:17:21.5453896Z             {
2026-06-19T05:17:21.5454019Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5454104Z               "line": 673
2026-06-19T05:17:21.5454189Z             },
2026-06-19T05:17:21.5454273Z             {
2026-06-19T05:17:21.5454389Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5454480Z               "line": 773
2026-06-19T05:17:21.5454570Z             },
2026-06-19T05:17:21.5454651Z             {
2026-06-19T05:17:21.5454766Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5454865Z               "line": 1045
2026-06-19T05:17:21.5454956Z             },
2026-06-19T05:17:21.5455037Z             {
2026-06-19T05:17:21.5455171Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.5455270Z               "line": 184
2026-06-19T05:17:21.5455352Z             }
2026-06-19T05:17:21.5455438Z           ]
2026-06-19T05:17:21.5455519Z         },
2026-06-19T05:17:21.5455609Z         "int": {
2026-06-19T05:17:21.5455691Z           "complete": false,
2026-06-19T05:17:21.5455790Z           "evidence": []
2026-06-19T05:17:21.5455885Z         },
2026-06-19T05:17:21.5455973Z         "unit": {
2026-06-19T05:17:21.5456067Z           "complete": true,
2026-06-19T05:17:21.5456158Z           "evidence": [
2026-06-19T05:17:21.5456249Z             {
2026-06-19T05:17:21.5456368Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5456467Z               "line": 1094
2026-06-19T05:17:21.5456564Z             },
2026-06-19T05:17:21.5456640Z             {
2026-06-19T05:17:21.5456772Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-19T05:17:21.5456852Z               "line": 44
2026-06-19T05:17:21.5456934Z             },
2026-06-19T05:17:21.5457020Z             {
2026-06-19T05:17:21.5457157Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-19T05:17:21.5457249Z               "line": 52
2026-06-19T05:17:21.5457335Z             },
2026-06-19T05:17:21.5457420Z             {
2026-06-19T05:17:21.5457529Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-19T05:17:21.5457626Z               "line": 57
2026-06-19T05:17:21.5457712Z             },
2026-06-19T05:17:21.5457786Z             {
2026-06-19T05:17:21.5457912Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-19T05:17:21.5458002Z               "line": 54
2026-06-19T05:17:21.5458088Z             }
2026-06-19T05:17:21.5458173Z           ]
2026-06-19T05:17:21.5458265Z         }
2026-06-19T05:17:21.5458349Z       }
2026-06-19T05:17:21.5458430Z     },
2026-06-19T05:17:21.5458523Z     {
2026-06-19T05:17:21.5458646Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-19T05:17:21.5458871Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-19T05:17:21.5459045Z       "requiredStages": [
2026-06-19T05:17:21.5459140Z         "impl",
2026-06-19T05:17:21.5459226Z         "unit"
2026-06-19T05:17:21.5459306Z       ],
2026-06-19T05:17:21.5459396Z       "stages": {
2026-06-19T05:17:21.5459477Z         "doc": {
2026-06-19T05:17:21.5459572Z           "complete": false,
2026-06-19T05:17:21.5459667Z           "evidence": []
2026-06-19T05:17:21.5459753Z         },
2026-06-19T05:17:21.5459849Z         "impl": {
2026-06-19T05:17:21.5459930Z           "complete": true,
2026-06-19T05:17:21.5460034Z           "evidence": [
2026-06-19T05:17:21.5460111Z             {
2026-06-19T05:17:21.5460235Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5460436Z               "line": 26
2026-06-19T05:17:21.5460522Z             },
2026-06-19T05:17:21.5460598Z             {
2026-06-19T05:17:21.5460707Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5460803Z               "line": 135
2026-06-19T05:17:21.5460883Z             },
2026-06-19T05:17:21.5460964Z             {
2026-06-19T05:17:21.5461089Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:17:21.5461188Z               "line": 26
2026-06-19T05:17:21.5461360Z             },
2026-06-19T05:17:21.5461443Z             {
2026-06-19T05:17:21.5461569Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:17:21.5461656Z               "line": 237
2026-06-19T05:17:21.5461733Z             }
2026-06-19T05:17:21.5461823Z           ]
2026-06-19T05:17:21.5461907Z         },
2026-06-19T05:17:21.5461988Z         "int": {
2026-06-19T05:17:21.5462074Z           "complete": false,
2026-06-19T05:17:21.5462168Z           "evidence": []
2026-06-19T05:17:21.5462258Z         },
2026-06-19T05:17:21.5462344Z         "unit": {
2026-06-19T05:17:21.5462440Z           "complete": true,
2026-06-19T05:17:21.5462534Z           "evidence": [
2026-06-19T05:17:21.5462624Z             {
2026-06-19T05:17:21.5462731Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5462817Z               "line": 161
2026-06-19T05:17:21.5462901Z             },
2026-06-19T05:17:21.5462988Z             {
2026-06-19T05:17:21.5463097Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5463197Z               "line": 170
2026-06-19T05:17:21.5463278Z             },
2026-06-19T05:17:21.5463360Z             {
2026-06-19T05:17:21.5463479Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5463564Z               "line": 179
2026-06-19T05:17:21.5463646Z             },
2026-06-19T05:17:21.5463727Z             {
2026-06-19T05:17:21.5463850Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5463951Z               "line": 190
2026-06-19T05:17:21.5464028Z             },
2026-06-19T05:17:21.5464117Z             {
2026-06-19T05:17:21.5464227Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5464324Z               "line": 199
2026-06-19T05:17:21.5464413Z             },
2026-06-19T05:17:21.5464503Z             {
2026-06-19T05:17:21.5464617Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5464697Z               "line": 216
2026-06-19T05:17:21.5464796Z             },
2026-06-19T05:17:21.5464872Z             {
2026-06-19T05:17:21.5464977Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:17:21.5465059Z               "line": 242
2026-06-19T05:17:21.5465149Z             },
2026-06-19T05:17:21.5465234Z             {
2026-06-19T05:17:21.5465350Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5465444Z               "line": 295
2026-06-19T05:17:21.5465530Z             },
2026-06-19T05:17:21.5465617Z             {
2026-06-19T05:17:21.5465726Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5465816Z               "line": 244
2026-06-19T05:17:21.5465908Z             },
2026-06-19T05:17:21.5465988Z             {
2026-06-19T05:17:21.5466117Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:17:21.5466208Z               "line": 265
2026-06-19T05:17:21.5466303Z             },
2026-06-19T05:17:21.5466389Z             {
2026-06-19T05:17:21.5466508Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:17:21.5466618Z               "line": 293
2026-06-19T05:17:21.5466703Z             },
2026-06-19T05:17:21.5466794Z             {
2026-06-19T05:17:21.5466914Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:17:21.5466999Z               "line": 317
2026-06-19T05:17:21.5467085Z             },
2026-06-19T05:17:21.5467167Z             {
2026-06-19T05:17:21.5467299Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:17:21.5467474Z               "line": 327
2026-06-19T05:17:21.5467562Z             },
2026-06-19T05:17:21.5467647Z             {
2026-06-19T05:17:21.5467775Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.5467867Z               "line": 540
2026-06-19T05:17:21.5467948Z             }
2026-06-19T05:17:21.5468032Z           ]
2026-06-19T05:17:21.5468114Z         }
2026-06-19T05:17:21.5468205Z       }
2026-06-19T05:17:21.5468286Z     },
2026-06-19T05:17:21.5468380Z     {
2026-06-19T05:17:21.5468567Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-19T05:17:21.5468719Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-19T05:17:21.5468820Z       "requiredStages": [
2026-06-19T05:17:21.5468900Z         "impl",
2026-06-19T05:17:21.5469078Z         "unit"
2026-06-19T05:17:21.5469163Z       ],
2026-06-19T05:17:21.5469262Z       "stages": {
2026-06-19T05:17:21.5469344Z         "doc": {
2026-06-19T05:17:21.5469440Z           "complete": false,
2026-06-19T05:17:21.5469544Z           "evidence": []
2026-06-19T05:17:21.5469624Z         },
2026-06-19T05:17:21.5469715Z         "impl": {
2026-06-19T05:17:21.5469801Z           "complete": true,
2026-06-19T05:17:21.5469889Z           "evidence": [
2026-06-19T05:17:21.5469974Z             {
2026-06-19T05:17:21.5470084Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.5470172Z               "line": 25
2026-06-19T05:17:21.5470260Z             },
2026-06-19T05:17:21.5470356Z             {
2026-06-19T05:17:21.5470475Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5470570Z               "line": 26
2026-06-19T05:17:21.5470656Z             },
2026-06-19T05:17:21.5470739Z             {
2026-06-19T05:17:21.5470848Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5470933Z               "line": 159
2026-06-19T05:17:21.5471015Z             }
2026-06-19T05:17:21.5471100Z           ]
2026-06-19T05:17:21.5471191Z         },
2026-06-19T05:17:21.5471281Z         "int": {
2026-06-19T05:17:21.5471368Z           "complete": false,
2026-06-19T05:17:21.5471462Z           "evidence": []
2026-06-19T05:17:21.5471543Z         },
2026-06-19T05:17:21.5471630Z         "unit": {
2026-06-19T05:17:21.5471721Z           "complete": true,
2026-06-19T05:17:21.5471815Z           "evidence": [
2026-06-19T05:17:21.5471901Z             {
2026-06-19T05:17:21.5472012Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.5472110Z               "line": 188
2026-06-19T05:17:21.5472201Z             },
2026-06-19T05:17:21.5472293Z             {
2026-06-19T05:17:21.5472407Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.5472501Z               "line": 240
2026-06-19T05:17:21.5472592Z             },
2026-06-19T05:17:21.5472673Z             {
2026-06-19T05:17:21.5472789Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5472874Z               "line": 186
2026-06-19T05:17:21.5472956Z             }
2026-06-19T05:17:21.5473043Z           ]
2026-06-19T05:17:21.5473123Z         }
2026-06-19T05:17:21.5473208Z       }
2026-06-19T05:17:21.5473286Z     },
2026-06-19T05:17:21.5473367Z     {
2026-06-19T05:17:21.5473471Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-19T05:17:21.5473643Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-19T05:17:21.5473743Z       "requiredStages": [
2026-06-19T05:17:21.5473819Z         "impl",
2026-06-19T05:17:21.5473906Z         "unit"
2026-06-19T05:17:21.5473986Z       ],
2026-06-19T05:17:21.5474081Z       "stages": {
2026-06-19T05:17:21.5474167Z         "doc": {
2026-06-19T05:17:21.5474264Z           "complete": false,
2026-06-19T05:17:21.5474353Z           "evidence": []
2026-06-19T05:17:21.5474429Z         },
2026-06-19T05:17:21.5474512Z         "impl": {
2026-06-19T05:17:21.5474597Z           "complete": true,
2026-06-19T05:17:21.5474687Z           "evidence": [
2026-06-19T05:17:21.5474773Z             {
2026-06-19T05:17:21.5474899Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5475134Z               "line": 48
2026-06-19T05:17:21.5475225Z             },
2026-06-19T05:17:21.5475309Z             {
2026-06-19T05:17:21.5475422Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5475514Z               "line": 55
2026-06-19T05:17:21.5475600Z             },
2026-06-19T05:17:21.5475680Z             {
2026-06-19T05:17:21.5475785Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5475867Z               "line": 74
2026-06-19T05:17:21.5476047Z             },
2026-06-19T05:17:21.5476129Z             {
2026-06-19T05:17:21.5476243Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5476333Z               "line": 91
2026-06-19T05:17:21.5476415Z             }
2026-06-19T05:17:21.5476497Z           ]
2026-06-19T05:17:21.5476582Z         },
2026-06-19T05:17:21.5476672Z         "int": {
2026-06-19T05:17:21.5476768Z           "complete": false,
2026-06-19T05:17:21.5476853Z           "evidence": []
2026-06-19T05:17:21.5476949Z         },
2026-06-19T05:17:21.5477044Z         "unit": {
2026-06-19T05:17:21.5477136Z           "complete": true,
2026-06-19T05:17:21.5477234Z           "evidence": [
2026-06-19T05:17:21.5477321Z             {
2026-06-19T05:17:21.5477432Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5477525Z               "line": 149
2026-06-19T05:17:21.5477607Z             },
2026-06-19T05:17:21.5477698Z             {
2026-06-19T05:17:21.5477808Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5477897Z               "line": 166
2026-06-19T05:17:21.5477982Z             },
2026-06-19T05:17:21.5478064Z             {
2026-06-19T05:17:21.5478169Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5478259Z               "line": 176
2026-06-19T05:17:21.5478340Z             },
2026-06-19T05:17:21.5478422Z             {
2026-06-19T05:17:21.5478540Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5478635Z               "line": 194
2026-06-19T05:17:21.5478717Z             },
2026-06-19T05:17:21.5478803Z             {
2026-06-19T05:17:21.5478907Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5479056Z               "line": 207
2026-06-19T05:17:21.5479137Z             }
2026-06-19T05:17:21.5479212Z           ]
2026-06-19T05:17:21.5479299Z         }
2026-06-19T05:17:21.5479380Z       }
2026-06-19T05:17:21.5479470Z     },
2026-06-19T05:17:21.5479551Z     {
2026-06-19T05:17:21.5479676Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-19T05:17:21.5479861Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-19T05:17:21.5479957Z       "requiredStages": [
2026-06-19T05:17:21.5480052Z         "impl",
2026-06-19T05:17:21.5480128Z         "unit"
2026-06-19T05:17:21.5480213Z       ],
2026-06-19T05:17:21.5480299Z       "stages": {
2026-06-19T05:17:21.5480389Z         "doc": {
2026-06-19T05:17:21.5480482Z           "complete": false,
2026-06-19T05:17:21.5480577Z           "evidence": []
2026-06-19T05:17:21.5480659Z         },
2026-06-19T05:17:21.5480741Z         "impl": {
2026-06-19T05:17:21.5480839Z           "complete": true,
2026-06-19T05:17:21.5480916Z           "evidence": [
2026-06-19T05:17:21.5481008Z             {
2026-06-19T05:17:21.5481131Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5481216Z               "line": 466
2026-06-19T05:17:21.5481303Z             },
2026-06-19T05:17:21.5481389Z             {
2026-06-19T05:17:21.5481512Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5481594Z               "line": 26
2026-06-19T05:17:21.5481693Z             }
2026-06-19T05:17:21.5481770Z           ]
2026-06-19T05:17:21.5484456Z         },
2026-06-19T05:17:21.5484551Z         "int": {
2026-06-19T05:17:21.5484646Z           "complete": false,
2026-06-19T05:17:21.5484742Z           "evidence": []
2026-06-19T05:17:21.5484829Z         },
2026-06-19T05:17:21.5485062Z         "unit": {
2026-06-19T05:17:21.5485148Z           "complete": true,
2026-06-19T05:17:21.5485237Z           "evidence": [
2026-06-19T05:17:21.5485328Z             {
2026-06-19T05:17:21.5485454Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5485547Z               "line": 150
2026-06-19T05:17:21.5485628Z             },
2026-06-19T05:17:21.5485714Z             {
2026-06-19T05:17:21.5485832Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5486021Z               "line": 208
2026-06-19T05:17:21.5486107Z             }
2026-06-19T05:17:21.5486184Z           ]
2026-06-19T05:17:21.5486274Z         }
2026-06-19T05:17:21.5486360Z       }
2026-06-19T05:17:21.5486441Z     },
2026-06-19T05:17:21.5486527Z     {
2026-06-19T05:17:21.5486650Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-19T05:17:21.5487992Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-19T05:17:21.5488104Z       "requiredStages": [
2026-06-19T05:17:21.5488191Z         "doc",
2026-06-19T05:17:21.5488273Z         "impl",
2026-06-19T05:17:21.5488358Z         "unit"
2026-06-19T05:17:21.5488447Z       ],
2026-06-19T05:17:21.5488537Z       "stages": {
2026-06-19T05:17:21.5488624Z         "doc": {
2026-06-19T05:17:21.5488706Z           "complete": true,
2026-06-19T05:17:21.5488809Z           "evidence": [
2026-06-19T05:17:21.5488890Z             {
2026-06-19T05:17:21.5489100Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5489195Z               "line": 214
2026-06-19T05:17:21.5489278Z             }
2026-06-19T05:17:21.5489363Z           ]
2026-06-19T05:17:21.5489443Z         },
2026-06-19T05:17:21.5489544Z         "impl": {
2026-06-19T05:17:21.5489635Z           "complete": true,
2026-06-19T05:17:21.5489725Z           "evidence": [
2026-06-19T05:17:21.5489806Z             {
2026-06-19T05:17:21.5489922Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5490011Z               "line": 56
2026-06-19T05:17:21.5490097Z             },
2026-06-19T05:17:21.5490179Z             {
2026-06-19T05:17:21.5490298Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5490387Z               "line": 575
2026-06-19T05:17:21.5490469Z             },
2026-06-19T05:17:21.5490552Z             {
2026-06-19T05:17:21.5490674Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5490759Z               "line": 36
2026-06-19T05:17:21.5490840Z             },
2026-06-19T05:17:21.5490921Z             {
2026-06-19T05:17:21.5491043Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5491142Z               "line": 59
2026-06-19T05:17:21.5491224Z             },
2026-06-19T05:17:21.5491310Z             {
2026-06-19T05:17:21.5491419Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5491515Z               "line": 83
2026-06-19T05:17:21.5491601Z             },
2026-06-19T05:17:21.5491681Z             {
2026-06-19T05:17:21.5491806Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5491892Z               "line": 140
2026-06-19T05:17:21.5491972Z             },
2026-06-19T05:17:21.5492062Z             {
2026-06-19T05:17:21.5492178Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5492263Z               "line": 159
2026-06-19T05:17:21.5492344Z             },
2026-06-19T05:17:21.5492430Z             {
2026-06-19T05:17:21.5492549Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5492640Z               "line": 384
2026-06-19T05:17:21.5492726Z             },
2026-06-19T05:17:21.5492812Z             {
2026-06-19T05:17:21.5493031Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5493113Z               "line": 535
2026-06-19T05:17:21.5493198Z             },
2026-06-19T05:17:21.5493284Z             {
2026-06-19T05:17:21.5493409Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5493485Z               "line": 581
2026-06-19T05:17:21.5493569Z             },
2026-06-19T05:17:21.5493654Z             {
2026-06-19T05:17:21.5493764Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5493966Z               "line": 300
2026-06-19T05:17:21.5494053Z             },
2026-06-19T05:17:21.5494134Z             {
2026-06-19T05:17:21.5494243Z               "path": "crates/spt/src/main.rs",
2026-06-19T05:17:21.5494333Z               "line": 42
2026-06-19T05:17:21.5494416Z             }
2026-06-19T05:17:21.5494502Z           ]
2026-06-19T05:17:21.5494581Z         },
2026-06-19T05:17:21.5494668Z         "int": {
2026-06-19T05:17:21.5494764Z           "complete": false,
2026-06-19T05:17:21.5494859Z           "evidence": []
2026-06-19T05:17:21.5494944Z         },
2026-06-19T05:17:21.5495026Z         "unit": {
2026-06-19T05:17:21.5495116Z           "complete": true,
2026-06-19T05:17:21.5495202Z           "evidence": [
2026-06-19T05:17:21.5495288Z             {
2026-06-19T05:17:21.5495417Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5495502Z               "line": 813
2026-06-19T05:17:21.5495588Z             },
2026-06-19T05:17:21.5495680Z             {
2026-06-19T05:17:21.5495797Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5495888Z               "line": 854
2026-06-19T05:17:21.5495962Z             },
2026-06-19T05:17:21.5496047Z             {
2026-06-19T05:17:21.5496159Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5496254Z               "line": 928
2026-06-19T05:17:21.5496340Z             }
2026-06-19T05:17:21.5496429Z           ]
2026-06-19T05:17:21.5496509Z         }
2026-06-19T05:17:21.5496596Z       }
2026-06-19T05:17:21.5496682Z     },
2026-06-19T05:17:21.5496763Z     {
2026-06-19T05:17:21.5496896Z       "id": "REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT",
2026-06-19T05:17:21.5501765Z       "title": "A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY output. KEYSTONE — the operator's central 'attach shows no output' symptom, reproduced on the real dummy-harness fixture (v0.12.1 Wave 1) with NO death and NO wedge: bringup succeeds (online, harness pid alive + heartbeating, psyche hosted), the attach CONNECTS (PUMP_IPC_READER spawned, no RC_FAIL, holds the full window) — but receives EXACTLY 0 bytes over 10s of the harness's flushed [session.self] stdout. DISTINCT from REQ-HAZARD-VIEWER-CLOSE-DETACH (death) and REQ-HAZARD-ATTACH-WEDGE (dead-child backpressure): here the harness is ALIVE and the attach is a clean first subscribe. This BLOCKS the 'view is independent' invariant — re-attach is meaningless if a live endpoint-run harness shows nothing. KNOWN-GOOD (rules out 'no drain'): attach.rs `local_attach_via_loopback_conn_rides_the_same_pump` + `broker_spawns_the_pty_child_in_the_requested_cwd` prove the broker DOES drain+fan a `spawn_session` PTY child to a loopback attach over the SAME transport rc uses. Both spawn_session and endpoint-run's spawn_session_pid send KIND_SPAWN → the same dispatch_spawn (broker.rs:706/835) which starts the per-session drain+OutputLog — so the gap is NARROWER than 'no drain', endpoint-run-specific. Root candidates: (a) spawn_session_pid's SpawnReq stdio/env/cwd differs so the dummy's stdout isn't the captured ConPTY; (b) the harness stdout WRITE BLOCKS because the ConPTY buffer fills (drain not reading THIS pty) — explains alive-but-0-bytes; (c) ConPTY reader-park (KH 7.6) on this path; (d) `spt rc` resolve_session/subscribe for an endpoint-run session subscribes to the wrong/empty log. (v0.12.1)",
2026-06-19T05:17:21.5501903Z       "requiredStages": [
2026-06-19T05:17:21.5501993Z         "impl",
2026-06-19T05:17:21.5502203Z         "unit",
2026-06-19T05:17:21.5502293Z         "int"
2026-06-19T05:17:21.5502376Z       ],
2026-06-19T05:17:21.5502466Z       "stages": {
2026-06-19T05:17:21.5502537Z         "doc": {
2026-06-19T05:17:21.5502637Z           "complete": false,
2026-06-19T05:17:21.5502733Z           "evidence": []
2026-06-19T05:17:21.5502810Z         },
2026-06-19T05:17:21.5502895Z         "impl": {
2026-06-19T05:17:21.5502986Z           "complete": true,
2026-06-19T05:17:21.5503067Z           "evidence": [
2026-06-19T05:17:21.5504209Z             {
2026-06-19T05:17:21.5504338Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.5504427Z               "line": 106
2026-06-19T05:17:21.5504512Z             }
2026-06-19T05:17:21.5504594Z           ]
2026-06-19T05:17:21.5504671Z         },
2026-06-19T05:17:21.5504752Z         "int": {
2026-06-19T05:17:21.5504841Z           "complete": true,
2026-06-19T05:17:21.5504933Z           "evidence": [
2026-06-19T05:17:21.5505028Z             {
2026-06-19T05:17:21.5505156Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
2026-06-19T05:17:21.5505248Z               "line": 296
2026-06-19T05:17:21.5505333Z             }
2026-06-19T05:17:21.5505419Z           ]
2026-06-19T05:17:21.5505509Z         },
2026-06-19T05:17:21.5505600Z         "unit": {
2026-06-19T05:17:21.5505700Z           "complete": true,
2026-06-19T05:17:21.5505790Z           "evidence": [
2026-06-19T05:17:21.5505872Z             {
2026-06-19T05:17:21.5506001Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.5506096Z               "line": 463
2026-06-19T05:17:21.5506182Z             }
2026-06-19T05:17:21.5506273Z           ]
2026-06-19T05:17:21.5506362Z         }
2026-06-19T05:17:21.5506444Z       }
2026-06-19T05:17:21.5506531Z     },
2026-06-19T05:17:21.5506612Z     {
2026-06-19T05:17:21.5506714Z       "id": "REQ-HAZARD-ENV-SUBST",
2026-06-19T05:17:21.5510112Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
2026-06-19T05:17:21.5510244Z       "requiredStages": [
2026-06-19T05:17:21.5510330Z         "impl",
2026-06-19T05:17:21.5510417Z         "unit",
2026-06-19T05:17:21.5510503Z         "int"
2026-06-19T05:17:21.5510587Z       ],
2026-06-19T05:17:21.5510674Z       "stages": {
2026-06-19T05:17:21.5510755Z         "doc": {
2026-06-19T05:17:21.5510841Z           "complete": false,
2026-06-19T05:17:21.5510926Z           "evidence": []
2026-06-19T05:17:21.5511018Z         },
2026-06-19T05:17:21.5511098Z         "impl": {
2026-06-19T05:17:21.5511198Z           "complete": true,
2026-06-19T05:17:21.5511284Z           "evidence": [
2026-06-19T05:17:21.5511366Z             {
2026-06-19T05:17:21.5511508Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5511603Z               "line": 102
2026-06-19T05:17:21.5511691Z             },
2026-06-19T05:17:21.5511774Z             {
2026-06-19T05:17:21.5511893Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:17:21.5512087Z               "line": 134
2026-06-19T05:17:21.5512173Z             }
2026-06-19T05:17:21.5512258Z           ]
2026-06-19T05:17:21.5512335Z         },
2026-06-19T05:17:21.5512421Z         "int": {
2026-06-19T05:17:21.5512506Z           "complete": true,
2026-06-19T05:17:21.5512587Z           "evidence": [
2026-06-19T05:17:21.5512664Z             {
2026-06-19T05:17:21.5512792Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:17:21.5512983Z               "line": 310
2026-06-19T05:17:21.5513064Z             },
2026-06-19T05:17:21.5513150Z             {
2026-06-19T05:17:21.5513261Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:17:21.5513355Z               "line": 504
2026-06-19T05:17:21.5513436Z             }
2026-06-19T05:17:21.5513517Z           ]
2026-06-19T05:17:21.5513604Z         },
2026-06-19T05:17:21.5513693Z         "unit": {
2026-06-19T05:17:21.5513789Z           "complete": true,
2026-06-19T05:17:21.5513875Z           "evidence": [
2026-06-19T05:17:21.5513947Z             {
2026-06-19T05:17:21.5514070Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5514156Z               "line": 205
2026-06-19T05:17:21.5514239Z             }
2026-06-19T05:17:21.5514323Z           ]
2026-06-19T05:17:21.5514409Z         }
2026-06-19T05:17:21.5514496Z       }
2026-06-19T05:17:21.5514577Z     },
2026-06-19T05:17:21.5514661Z     {
2026-06-19T05:17:21.5514784Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-19T05:17:21.5516490Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-19T05:17:21.5516594Z       "requiredStages": [
2026-06-19T05:17:21.5516684Z         "impl",
2026-06-19T05:17:21.5516762Z         "unit"
2026-06-19T05:17:21.5516848Z       ],
2026-06-19T05:17:21.5516941Z       "stages": {
2026-06-19T05:17:21.5517028Z         "doc": {
2026-06-19T05:17:21.5517124Z           "complete": false,
2026-06-19T05:17:21.5517223Z           "evidence": []
2026-06-19T05:17:21.5517313Z         },
2026-06-19T05:17:21.5517403Z         "impl": {
2026-06-19T05:17:21.5517489Z           "complete": true,
2026-06-19T05:17:21.5517583Z           "evidence": [
2026-06-19T05:17:21.5517663Z             {
2026-06-19T05:17:21.5517788Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5517869Z               "line": 31
2026-06-19T05:17:21.5517958Z             }
2026-06-19T05:17:21.5518045Z           ]
2026-06-19T05:17:21.5518132Z         },
2026-06-19T05:17:21.5518212Z         "int": {
2026-06-19T05:17:21.5518297Z           "complete": false,
2026-06-19T05:17:21.5518384Z           "evidence": []
2026-06-19T05:17:21.5518470Z         },
2026-06-19T05:17:21.5518551Z         "unit": {
2026-06-19T05:17:21.5518641Z           "complete": true,
2026-06-19T05:17:21.5518727Z           "evidence": [
2026-06-19T05:17:21.5518817Z             {
2026-06-19T05:17:21.5518936Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5519104Z               "line": 181
2026-06-19T05:17:21.5519185Z             }
2026-06-19T05:17:21.5519270Z           ]
2026-06-19T05:17:21.5519352Z         }
2026-06-19T05:17:21.5519433Z       }
2026-06-19T05:17:21.5519519Z     },
2026-06-19T05:17:21.5519600Z     {
2026-06-19T05:17:21.5519724Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-19T05:17:21.5519871Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-19T05:17:21.5519963Z       "requiredStages": [
2026-06-19T05:17:21.5520151Z         "impl",
2026-06-19T05:17:21.5520227Z         "unit"
2026-06-19T05:17:21.5520309Z       ],
2026-06-19T05:17:21.5520391Z       "stages": {
2026-06-19T05:17:21.5520471Z         "doc": {
2026-06-19T05:17:21.5520556Z           "complete": false,
2026-06-19T05:17:21.5520648Z           "evidence": []
2026-06-19T05:17:21.5520729Z         },
2026-06-19T05:17:21.5520823Z         "impl": {
2026-06-19T05:17:21.5520920Z           "complete": true,
2026-06-19T05:17:21.5521006Z           "evidence": [
2026-06-19T05:17:21.5521176Z             {
2026-06-19T05:17:21.5521302Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5521396Z               "line": 49
2026-06-19T05:17:21.5521481Z             },
2026-06-19T05:17:21.5521559Z             {
2026-06-19T05:17:21.5521673Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5521754Z               "line": 81
2026-06-19T05:17:21.5521839Z             }
2026-06-19T05:17:21.5521912Z           ]
2026-06-19T05:17:21.5521997Z         },
2026-06-19T05:17:21.5522078Z         "int": {
2026-06-19T05:17:21.5522164Z           "complete": false,
2026-06-19T05:17:21.5522246Z           "evidence": []
2026-06-19T05:17:21.5522330Z         },
2026-06-19T05:17:21.5522416Z         "unit": {
2026-06-19T05:17:21.5522511Z           "complete": true,
2026-06-19T05:17:21.5522606Z           "evidence": [
2026-06-19T05:17:21.5522685Z             {
2026-06-19T05:17:21.5522794Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5522890Z               "line": 156
2026-06-19T05:17:21.5522962Z             },
2026-06-19T05:17:21.5523047Z             {
2026-06-19T05:17:21.5523162Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5523253Z               "line": 173
2026-06-19T05:17:21.5523333Z             },
2026-06-19T05:17:21.5523419Z             {
2026-06-19T05:17:21.5523535Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5523610Z               "line": 196
2026-06-19T05:17:21.5523700Z             }
2026-06-19T05:17:21.5523782Z           ]
2026-06-19T05:17:21.5523873Z         }
2026-06-19T05:17:21.5523963Z       }
2026-06-19T05:17:21.5524048Z     },
2026-06-19T05:17:21.5524135Z     {
2026-06-19T05:17:21.5524244Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-19T05:17:21.5524406Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-19T05:17:21.5524498Z       "requiredStages": [
2026-06-19T05:17:21.5524587Z         "impl",
2026-06-19T05:17:21.5524668Z         "unit"
2026-06-19T05:17:21.5524755Z       ],
2026-06-19T05:17:21.5524836Z       "stages": {
2026-06-19T05:17:21.5524911Z         "doc": {
2026-06-19T05:17:21.5525007Z           "complete": false,
2026-06-19T05:17:21.5525094Z           "evidence": []
2026-06-19T05:17:21.5525179Z         },
2026-06-19T05:17:21.5525268Z         "impl": {
2026-06-19T05:17:21.5525358Z           "complete": true,
2026-06-19T05:17:21.5525454Z           "evidence": [
2026-06-19T05:17:21.5525543Z             {
2026-06-19T05:17:21.5525666Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5525757Z               "line": 120
2026-06-19T05:17:21.5525843Z             }
2026-06-19T05:17:21.5525933Z           ]
2026-06-19T05:17:21.5526019Z         },
2026-06-19T05:17:21.5526110Z         "int": {
2026-06-19T05:17:21.5526205Z           "complete": false,
2026-06-19T05:17:21.5526300Z           "evidence": []
2026-06-19T05:17:21.5526383Z         },
2026-06-19T05:17:21.5526468Z         "unit": {
2026-06-19T05:17:21.5526558Z           "complete": true,
2026-06-19T05:17:21.5526639Z           "evidence": [
2026-06-19T05:17:21.5526726Z             {
2026-06-19T05:17:21.5526844Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5526939Z               "line": 212
2026-06-19T05:17:21.5527027Z             },
2026-06-19T05:17:21.5527111Z             {
2026-06-19T05:17:21.5527240Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5527412Z               "line": 221
2026-06-19T05:17:21.5527497Z             },
2026-06-19T05:17:21.5527578Z             {
2026-06-19T05:17:21.5527703Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5527788Z               "line": 229
2026-06-19T05:17:21.5527863Z             },
2026-06-19T05:17:21.5527949Z             {
2026-06-19T05:17:21.5528077Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5528162Z               "line": 239
2026-06-19T05:17:21.5528328Z             },
2026-06-19T05:17:21.5528411Z             {
2026-06-19T05:17:21.5528533Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:17:21.5528615Z               "line": 249
2026-06-19T05:17:21.5528701Z             }
2026-06-19T05:17:21.5528786Z           ]
2026-06-19T05:17:21.5528867Z         }
2026-06-19T05:17:21.5529025Z       }
2026-06-19T05:17:21.5529111Z     },
2026-06-19T05:17:21.5529186Z     {
2026-06-19T05:17:21.5529316Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-19T05:17:21.5529482Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-19T05:17:21.5529579Z       "requiredStages": [
2026-06-19T05:17:21.5529664Z         "impl",
2026-06-19T05:17:21.5529750Z         "unit"
2026-06-19T05:17:21.5529835Z       ],
2026-06-19T05:17:21.5529912Z       "stages": {
2026-06-19T05:17:21.5529993Z         "doc": {
2026-06-19T05:17:21.5530084Z           "complete": false,
2026-06-19T05:17:21.5530170Z           "evidence": []
2026-06-19T05:17:21.5530261Z         },
2026-06-19T05:17:21.5530345Z         "impl": {
2026-06-19T05:17:21.5530440Z           "complete": true,
2026-06-19T05:17:21.5530523Z           "evidence": [
2026-06-19T05:17:21.5530604Z             {
2026-06-19T05:17:21.5530726Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.5530811Z               "line": 14
2026-06-19T05:17:21.5530893Z             },
2026-06-19T05:17:21.5530980Z             {
2026-06-19T05:17:21.5531083Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.5531170Z               "line": 63
2026-06-19T05:17:21.5531251Z             }
2026-06-19T05:17:21.5531337Z           ]
2026-06-19T05:17:21.5531417Z         },
2026-06-19T05:17:21.5531499Z         "int": {
2026-06-19T05:17:21.5531589Z           "complete": false,
2026-06-19T05:17:21.5531675Z           "evidence": []
2026-06-19T05:17:21.5531756Z         },
2026-06-19T05:17:21.5531842Z         "unit": {
2026-06-19T05:17:21.5531932Z           "complete": true,
2026-06-19T05:17:21.5532022Z           "evidence": [
2026-06-19T05:17:21.5532109Z             {
2026-06-19T05:17:21.5532219Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.5532319Z               "line": 164
2026-06-19T05:17:21.5532400Z             },
2026-06-19T05:17:21.5532486Z             {
2026-06-19T05:17:21.5532599Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.5532680Z               "line": 198
2026-06-19T05:17:21.5532773Z             },
2026-06-19T05:17:21.5532853Z             {
2026-06-19T05:17:21.5532966Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.5533046Z               "line": 220
2026-06-19T05:17:21.5533138Z             }
2026-06-19T05:17:21.5533226Z           ]
2026-06-19T05:17:21.5533307Z         }
2026-06-19T05:17:21.5533388Z       }
2026-06-19T05:17:21.5533474Z     },
2026-06-19T05:17:21.5533560Z     {
2026-06-19T05:17:21.5533669Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-19T05:17:21.5534961Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-19T05:17:21.5535072Z       "requiredStages": [],
2026-06-19T05:17:21.5535161Z       "stages": {
2026-06-19T05:17:21.5535344Z         "doc": {
2026-06-19T05:17:21.5535443Z           "complete": true,
2026-06-19T05:17:21.5535524Z           "evidence": [
2026-06-19T05:17:21.5535621Z             {
2026-06-19T05:17:21.5535730Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5535828Z               "line": 165
2026-06-19T05:17:21.5535909Z             }
2026-06-19T05:17:21.5536000Z           ]
2026-06-19T05:17:21.5536080Z         },
2026-06-19T05:17:21.5536165Z         "impl": {
2026-06-19T05:17:21.5536365Z           "complete": false,
2026-06-19T05:17:21.5536460Z           "evidence": []
2026-06-19T05:17:21.5536550Z         },
2026-06-19T05:17:21.5536638Z         "int": {
2026-06-19T05:17:21.5536742Z           "complete": false,
2026-06-19T05:17:21.5536837Z           "evidence": []
2026-06-19T05:17:21.5536923Z         },
2026-06-19T05:17:21.5537018Z         "unit": {
2026-06-19T05:17:21.5537094Z           "complete": false,
2026-06-19T05:17:21.5537184Z           "evidence": []
2026-06-19T05:17:21.5537272Z         }
2026-06-19T05:17:21.5537347Z       }
2026-06-19T05:17:21.5537428Z     },
2026-06-19T05:17:21.5537509Z     {
2026-06-19T05:17:21.5537634Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-19T05:17:21.5537848Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-19T05:17:21.5537949Z       "requiredStages": [
2026-06-19T05:17:21.5538033Z         "impl",
2026-06-19T05:17:21.5538120Z         "unit"
2026-06-19T05:17:21.5538202Z       ],
2026-06-19T05:17:21.5538292Z       "stages": {
2026-06-19T05:17:21.5538367Z         "doc": {
2026-06-19T05:17:21.5538456Z           "complete": false,
2026-06-19T05:17:21.5538543Z           "evidence": []
2026-06-19T05:17:21.5538628Z         },
2026-06-19T05:17:21.5538717Z         "impl": {
2026-06-19T05:17:21.5538807Z           "complete": true,
2026-06-19T05:17:21.5538903Z           "evidence": [
2026-06-19T05:17:21.5539051Z             {
2026-06-19T05:17:21.5539170Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5539271Z               "line": 76
2026-06-19T05:17:21.5539356Z             },
2026-06-19T05:17:21.5539441Z             {
2026-06-19T05:17:21.5539561Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5539657Z               "line": 167
2026-06-19T05:17:21.5539732Z             },
2026-06-19T05:17:21.5539824Z             {
2026-06-19T05:17:21.5539933Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5540014Z               "line": 233
2026-06-19T05:17:21.5540105Z             },
2026-06-19T05:17:21.5540186Z             {
2026-06-19T05:17:21.5540300Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5540395Z               "line": 272
2026-06-19T05:17:21.5540473Z             }
2026-06-19T05:17:21.5540557Z           ]
2026-06-19T05:17:21.5540634Z         },
2026-06-19T05:17:21.5540720Z         "int": {
2026-06-19T05:17:21.5540816Z           "complete": false,
2026-06-19T05:17:21.5540905Z           "evidence": []
2026-06-19T05:17:21.5541001Z         },
2026-06-19T05:17:21.5541088Z         "unit": {
2026-06-19T05:17:21.5541178Z           "complete": true,
2026-06-19T05:17:21.5541267Z           "evidence": [
2026-06-19T05:17:21.5541343Z             {
2026-06-19T05:17:21.5541463Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5541544Z               "line": 321
2026-06-19T05:17:21.5541624Z             },
2026-06-19T05:17:21.5541705Z             {
2026-06-19T05:17:21.5541830Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5541915Z               "line": 329
2026-06-19T05:17:21.5542006Z             },
2026-06-19T05:17:21.5542093Z             {
2026-06-19T05:17:21.5542193Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5542277Z               "line": 356
2026-06-19T05:17:21.5542354Z             },
2026-06-19T05:17:21.5542440Z             {
2026-06-19T05:17:21.5542550Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5542751Z               "line": 395
2026-06-19T05:17:21.5542845Z             },
2026-06-19T05:17:21.5542926Z             {
2026-06-19T05:17:21.5543046Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5543132Z               "line": 406
2026-06-19T05:17:21.5543217Z             },
2026-06-19T05:17:21.5543298Z             {
2026-06-19T05:17:21.5543409Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5543507Z               "line": 418
2026-06-19T05:17:21.5543678Z             },
2026-06-19T05:17:21.5543768Z             {
2026-06-19T05:17:21.5543872Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:17:21.5543968Z               "line": 442
2026-06-19T05:17:21.5544053Z             }
2026-06-19T05:17:21.5544139Z           ]
2026-06-19T05:17:21.5544224Z         }
2026-06-19T05:17:21.5544306Z       }
2026-06-19T05:17:21.5544392Z     },
2026-06-19T05:17:21.5544472Z     {
2026-06-19T05:17:21.5544577Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-19T05:17:21.5544721Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-19T05:17:21.5544825Z       "requiredStages": [
2026-06-19T05:17:21.5544917Z         "impl",
2026-06-19T05:17:21.5545003Z         "int"
2026-06-19T05:17:21.5545084Z       ],
2026-06-19T05:17:21.5545163Z       "stages": {
2026-06-19T05:17:21.5545246Z         "doc": {
2026-06-19T05:17:21.5545341Z           "complete": false,
2026-06-19T05:17:21.5545431Z           "evidence": []
2026-06-19T05:17:21.5545517Z         },
2026-06-19T05:17:21.5545599Z         "impl": {
2026-06-19T05:17:21.5545693Z           "complete": true,
2026-06-19T05:17:21.5545779Z           "evidence": [
2026-06-19T05:17:21.5545861Z             {
2026-06-19T05:17:21.5545971Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5546070Z               "line": 22
2026-06-19T05:17:21.5546161Z             }
2026-06-19T05:17:21.5546248Z           ]
2026-06-19T05:17:21.5546332Z         },
2026-06-19T05:17:21.5546417Z         "int": {
2026-06-19T05:17:21.5546517Z           "complete": true,
2026-06-19T05:17:21.5546608Z           "evidence": [
2026-06-19T05:17:21.5546701Z             {
2026-06-19T05:17:21.5546835Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-19T05:17:21.5546925Z               "line": 18
2026-06-19T05:17:21.5547011Z             }
2026-06-19T05:17:21.5547087Z           ]
2026-06-19T05:17:21.5547183Z         },
2026-06-19T05:17:21.5547268Z         "unit": {
2026-06-19T05:17:21.5547363Z           "complete": false,
2026-06-19T05:17:21.5547454Z           "evidence": []
2026-06-19T05:17:21.5547541Z         }
2026-06-19T05:17:21.5547622Z       }
2026-06-19T05:17:21.5547706Z     },
2026-06-19T05:17:21.5547793Z     {
2026-06-19T05:17:21.5547912Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-19T05:17:21.5548098Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-19T05:17:21.5548199Z       "requiredStages": [
2026-06-19T05:17:21.5548283Z         "impl",
2026-06-19T05:17:21.5548375Z         "unit"
2026-06-19T05:17:21.5548461Z       ],
2026-06-19T05:17:21.5548542Z       "stages": {
2026-06-19T05:17:21.5548632Z         "doc": {
2026-06-19T05:17:21.5548728Z           "complete": false,
2026-06-19T05:17:21.5548819Z           "evidence": []
2026-06-19T05:17:21.5548903Z         },
2026-06-19T05:17:21.5549060Z         "impl": {
2026-06-19T05:17:21.5549151Z           "complete": true,
2026-06-19T05:17:21.5549244Z           "evidence": [
2026-06-19T05:17:21.5549329Z             {
2026-06-19T05:17:21.5549454Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5549549Z               "line": 465
2026-06-19T05:17:21.5549625Z             },
2026-06-19T05:17:21.5549711Z             {
2026-06-19T05:17:21.5549826Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5549916Z               "line": 27
2026-06-19T05:17:21.5549992Z             }
2026-06-19T05:17:21.5550084Z           ]
2026-06-19T05:17:21.5550174Z         },
2026-06-19T05:17:21.5550365Z         "int": {
2026-06-19T05:17:21.5550460Z           "complete": false,
2026-06-19T05:17:21.5550541Z           "evidence": []
2026-06-19T05:17:21.5550621Z         },
2026-06-19T05:17:21.5550709Z         "unit": {
2026-06-19T05:17:21.5550798Z           "complete": true,
2026-06-19T05:17:21.5550898Z           "evidence": [
2026-06-19T05:17:21.5550980Z             {
2026-06-19T05:17:21.5551103Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5551184Z               "line": 990
2026-06-19T05:17:21.5551367Z             },
2026-06-19T05:17:21.5551451Z             {
2026-06-19T05:17:21.5551575Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5551668Z               "line": 181
2026-06-19T05:17:21.5551752Z             }
2026-06-19T05:17:21.5551837Z           ]
2026-06-19T05:17:21.5551922Z         }
2026-06-19T05:17:21.5551999Z       }
2026-06-19T05:17:21.5552086Z     },
2026-06-19T05:17:21.5552170Z     {
2026-06-19T05:17:21.5552304Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-19T05:17:21.5552457Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-19T05:17:21.5552551Z       "requiredStages": [
2026-06-19T05:17:21.5552638Z         "impl",
2026-06-19T05:17:21.5552733Z         "unit"
2026-06-19T05:17:21.5552819Z       ],
2026-06-19T05:17:21.5552900Z       "stages": {
2026-06-19T05:17:21.5552986Z         "doc": {
2026-06-19T05:17:21.5553076Z           "complete": false,
2026-06-19T05:17:21.5553166Z           "evidence": []
2026-06-19T05:17:21.5553259Z         },
2026-06-19T05:17:21.5553353Z         "impl": {
2026-06-19T05:17:21.5553444Z           "complete": true,
2026-06-19T05:17:21.5553535Z           "evidence": [
2026-06-19T05:17:21.5553611Z             {
2026-06-19T05:17:21.5553729Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5553820Z               "line": 73
2026-06-19T05:17:21.5553903Z             },
2026-06-19T05:17:21.5553983Z             {
2026-06-19T05:17:21.5554105Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5554191Z               "line": 972
2026-06-19T05:17:21.5554286Z             },
2026-06-19T05:17:21.5554370Z             {
2026-06-19T05:17:21.5554493Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5554580Z               "line": 20
2026-06-19T05:17:21.5554667Z             },
2026-06-19T05:17:21.5554751Z             {
2026-06-19T05:17:21.5554862Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5554952Z               "line": 100
2026-06-19T05:17:21.5555033Z             },
2026-06-19T05:17:21.5555123Z             {
2026-06-19T05:17:21.5555229Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.5555315Z               "line": 577
2026-06-19T05:17:21.5555394Z             },
2026-06-19T05:17:21.5555482Z             {
2026-06-19T05:17:21.5555600Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:17:21.5555691Z               "line": 68
2026-06-19T05:17:21.5555776Z             },
2026-06-19T05:17:21.5555858Z             {
2026-06-19T05:17:21.5555987Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:17:21.5556072Z               "line": 80
2026-06-19T05:17:21.5556154Z             }
2026-06-19T05:17:21.5556235Z           ]
2026-06-19T05:17:21.5556311Z         },
2026-06-19T05:17:21.5556406Z         "int": {
2026-06-19T05:17:21.5556498Z           "complete": true,
2026-06-19T05:17:21.5556587Z           "evidence": [
2026-06-19T05:17:21.5556678Z             {
2026-06-19T05:17:21.5556798Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-19T05:17:21.5556893Z               "line": 44
2026-06-19T05:17:21.5556968Z             }
2026-06-19T05:17:21.5557058Z           ]
2026-06-19T05:17:21.5557140Z         },
2026-06-19T05:17:21.5557228Z         "unit": {
2026-06-19T05:17:21.5557318Z           "complete": true,
2026-06-19T05:17:21.5557404Z           "evidence": [
2026-06-19T05:17:21.5557485Z             {
2026-06-19T05:17:21.5557680Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5557782Z               "line": 1181
2026-06-19T05:17:21.5557863Z             },
2026-06-19T05:17:21.5557947Z             {
2026-06-19T05:17:21.5558072Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.5558162Z               "line": 1197
2026-06-19T05:17:21.5558252Z             },
2026-06-19T05:17:21.5558339Z             {
2026-06-19T05:17:21.5558458Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5558625Z               "line": 1563
2026-06-19T05:17:21.5558716Z             },
2026-06-19T05:17:21.5558805Z             {
2026-06-19T05:17:21.5558910Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5559093Z               "line": 152
2026-06-19T05:17:21.5559172Z             },
2026-06-19T05:17:21.5559254Z             {
2026-06-19T05:17:21.5559360Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5559459Z               "line": 175
2026-06-19T05:17:21.5559544Z             },
2026-06-19T05:17:21.5562131Z             {
2026-06-19T05:17:21.5562284Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5562368Z               "line": 186
2026-06-19T05:17:21.5562458Z             },
2026-06-19T05:17:21.5562540Z             {
2026-06-19T05:17:21.5562660Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5562740Z               "line": 202
2026-06-19T05:17:21.5562826Z             },
2026-06-19T05:17:21.5562903Z             {
2026-06-19T05:17:21.5563012Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:17:21.5563102Z               "line": 216
2026-06-19T05:17:21.5563180Z             },
2026-06-19T05:17:21.5563265Z             {
2026-06-19T05:17:21.5563398Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:17:21.5563489Z               "line": 137
2026-06-19T05:17:21.5563570Z             },
2026-06-19T05:17:21.5563651Z             {
2026-06-19T05:17:21.5563760Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5563843Z               "line": 7998
2026-06-19T05:17:21.5563923Z             },
2026-06-19T05:17:21.5564008Z             {
2026-06-19T05:17:21.5564124Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-19T05:17:21.5564214Z               "line": 30
2026-06-19T05:17:21.5564299Z             },
2026-06-19T05:17:21.5564385Z             {
2026-06-19T05:17:21.5564486Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-19T05:17:21.5564580Z               "line": 73
2026-06-19T05:17:21.5564660Z             }
2026-06-19T05:17:21.5564746Z           ]
2026-06-19T05:17:21.5564832Z         }
2026-06-19T05:17:21.5564916Z       }
2026-06-19T05:17:21.5565001Z     },
2026-06-19T05:17:21.5565088Z     {
2026-06-19T05:17:21.5565213Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
2026-06-19T05:17:21.5569267Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
2026-06-19T05:17:21.5569519Z       "requiredStages": [
2026-06-19T05:17:21.5569605Z         "impl",
2026-06-19T05:17:21.5569690Z         "unit",
2026-06-19T05:17:21.5569776Z         "int"
2026-06-19T05:17:21.5569863Z       ],
2026-06-19T05:17:21.5569940Z       "stages": {
2026-06-19T05:17:21.5570119Z         "doc": {
2026-06-19T05:17:21.5570218Z           "complete": false,
2026-06-19T05:17:21.5570318Z           "evidence": []
2026-06-19T05:17:21.5570402Z         },
2026-06-19T05:17:21.5570487Z         "impl": {
2026-06-19T05:17:21.5570569Z           "complete": true,
2026-06-19T05:17:21.5570661Z           "evidence": [
2026-06-19T05:17:21.5570745Z             {
2026-06-19T05:17:21.5570865Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5570960Z               "line": 510
2026-06-19T05:17:21.5571031Z             },
2026-06-19T05:17:21.5571112Z             {
2026-06-19T05:17:21.5571233Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5571318Z               "line": 692
2026-06-19T05:17:21.5571403Z             }
2026-06-19T05:17:21.5571485Z           ]
2026-06-19T05:17:21.5571571Z         },
2026-06-19T05:17:21.5571652Z         "int": {
2026-06-19T05:17:21.5571742Z           "complete": true,
2026-06-19T05:17:21.5571824Z           "evidence": [
2026-06-19T05:17:21.5571914Z             {
2026-06-19T05:17:21.5572037Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5572129Z               "line": 1060
2026-06-19T05:17:21.5572219Z             },
2026-06-19T05:17:21.5572300Z             {
2026-06-19T05:17:21.5572434Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-19T05:17:21.5572525Z               "line": 312
2026-06-19T05:17:21.5572600Z             }
2026-06-19T05:17:21.5572686Z           ]
2026-06-19T05:17:21.5572768Z         },
2026-06-19T05:17:21.5572854Z         "unit": {
2026-06-19T05:17:21.5572943Z           "complete": true,
2026-06-19T05:17:21.5573032Z           "evidence": [
2026-06-19T05:17:21.5573115Z             {
2026-06-19T05:17:21.5573238Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5573324Z               "line": 809
2026-06-19T05:17:21.5573410Z             }
2026-06-19T05:17:21.5573496Z           ]
2026-06-19T05:17:21.5573586Z         }
2026-06-19T05:17:21.5573671Z       }
2026-06-19T05:17:21.5573754Z     },
2026-06-19T05:17:21.5573835Z     {
2026-06-19T05:17:21.5573929Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-19T05:17:21.5574173Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-19T05:17:21.5574273Z       "requiredStages": [
2026-06-19T05:17:21.5574364Z         "impl",
2026-06-19T05:17:21.5574445Z         "unit"
2026-06-19T05:17:21.5574530Z       ],
2026-06-19T05:17:21.5574616Z       "stages": {
2026-06-19T05:17:21.5574703Z         "doc": {
2026-06-19T05:17:21.5574788Z           "complete": true,
2026-06-19T05:17:21.5574878Z           "evidence": [
2026-06-19T05:17:21.5574964Z             {
2026-06-19T05:17:21.5575070Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5575155Z               "line": 133
2026-06-19T05:17:21.5575244Z             }
2026-06-19T05:17:21.5575330Z           ]
2026-06-19T05:17:21.5575411Z         },
2026-06-19T05:17:21.5575495Z         "impl": {
2026-06-19T05:17:21.5575590Z           "complete": true,
2026-06-19T05:17:21.5575672Z           "evidence": [
2026-06-19T05:17:21.5575758Z             {
2026-06-19T05:17:21.5575876Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.5575962Z               "line": 65
2026-06-19T05:17:21.5576044Z             },
2026-06-19T05:17:21.5576124Z             {
2026-06-19T05:17:21.5576238Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5576406Z               "line": 17
2026-06-19T05:17:21.5576491Z             },
2026-06-19T05:17:21.5576582Z             {
2026-06-19T05:17:21.5576707Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5576792Z               "line": 146
2026-06-19T05:17:21.5576878Z             },
2026-06-19T05:17:21.5576955Z             {
2026-06-19T05:17:21.5577064Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5577145Z               "line": 286
2026-06-19T05:17:21.5577303Z             },
2026-06-19T05:17:21.5577388Z             {
2026-06-19T05:17:21.5577488Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5577580Z               "line": 417
2026-06-19T05:17:21.5577656Z             },
2026-06-19T05:17:21.5577740Z             {
2026-06-19T05:17:21.5577842Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.5577928Z               "line": 32
2026-06-19T05:17:21.5578013Z             },
2026-06-19T05:17:21.5578097Z             {
2026-06-19T05:17:21.5578212Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5578306Z               "line": 1269
2026-06-19T05:17:21.5578391Z             },
2026-06-19T05:17:21.5578462Z             {
2026-06-19T05:17:21.5578562Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5578649Z               "line": 6018
2026-06-19T05:17:21.5578738Z             },
2026-06-19T05:17:21.5578819Z             {
2026-06-19T05:17:21.5578916Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5579086Z               "line": 6300
2026-06-19T05:17:21.5579169Z             }
2026-06-19T05:17:21.5579250Z           ]
2026-06-19T05:17:21.5579331Z         },
2026-06-19T05:17:21.5579415Z         "int": {
2026-06-19T05:17:21.5579512Z           "complete": false,
2026-06-19T05:17:21.5579597Z           "evidence": []
2026-06-19T05:17:21.5579683Z         },
2026-06-19T05:17:21.5579769Z         "unit": {
2026-06-19T05:17:21.5579851Z           "complete": true,
2026-06-19T05:17:21.5579936Z           "evidence": [
2026-06-19T05:17:21.5580021Z             {
2026-06-19T05:17:21.5580132Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5580213Z               "line": 94
2026-06-19T05:17:21.5580307Z             },
2026-06-19T05:17:21.5580384Z             {
2026-06-19T05:17:21.5580485Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5580570Z               "line": 111
2026-06-19T05:17:21.5580655Z             },
2026-06-19T05:17:21.5580740Z             {
2026-06-19T05:17:21.5580841Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5580938Z               "line": 124
2026-06-19T05:17:21.5581019Z             },
2026-06-19T05:17:21.5581101Z             {
2026-06-19T05:17:21.5581212Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5581295Z               "line": 134
2026-06-19T05:17:21.5581382Z             },
2026-06-19T05:17:21.5581459Z             {
2026-06-19T05:17:21.5581564Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5581653Z               "line": 144
2026-06-19T05:17:21.5581730Z             },
2026-06-19T05:17:21.5581812Z             {
2026-06-19T05:17:21.5581916Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:17:21.5582016Z               "line": 156
2026-06-19T05:17:21.5582103Z             },
2026-06-19T05:17:21.5582187Z             {
2026-06-19T05:17:21.5582316Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5582403Z               "line": 746
2026-06-19T05:17:21.5582492Z             },
2026-06-19T05:17:21.5582573Z             {
2026-06-19T05:17:21.5582699Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.5582784Z               "line": 309
2026-06-19T05:17:21.5582870Z             }
2026-06-19T05:17:21.5582951Z           ]
2026-06-19T05:17:21.5583028Z         }
2026-06-19T05:17:21.5583113Z       }
2026-06-19T05:17:21.5583194Z     },
2026-06-19T05:17:21.5583280Z     {
2026-06-19T05:17:21.5583493Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-19T05:17:21.5583632Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-19T05:17:21.5583727Z       "requiredStages": [
2026-06-19T05:17:21.5583808Z         "impl",
2026-06-19T05:17:21.5583889Z         "unit"
2026-06-19T05:17:21.5583975Z       ],
2026-06-19T05:17:21.5584056Z       "stages": {
2026-06-19T05:17:21.5584137Z         "doc": {
2026-06-19T05:17:21.5584227Z           "complete": false,
2026-06-19T05:17:21.5584310Z           "evidence": []
2026-06-19T05:17:21.5584489Z         },
2026-06-19T05:17:21.5584581Z         "impl": {
2026-06-19T05:17:21.5584672Z           "complete": true,
2026-06-19T05:17:21.5584757Z           "evidence": [
2026-06-19T05:17:21.5584842Z             {
2026-06-19T05:17:21.5584968Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.5585057Z               "line": 128
2026-06-19T05:17:21.5585143Z             }
2026-06-19T05:17:21.5585225Z           ]
2026-06-19T05:17:21.5585306Z         },
2026-06-19T05:17:21.5585395Z         "int": {
2026-06-19T05:17:21.5585481Z           "complete": false,
2026-06-19T05:17:21.5585573Z           "evidence": []
2026-06-19T05:17:21.5585658Z         },
2026-06-19T05:17:21.5585739Z         "unit": {
2026-06-19T05:17:21.5585824Z           "complete": true,
2026-06-19T05:17:21.5585915Z           "evidence": [
2026-06-19T05:17:21.5585994Z             {
2026-06-19T05:17:21.5586107Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.5586203Z               "line": 205
2026-06-19T05:17:21.5586299Z             }
2026-06-19T05:17:21.5586384Z           ]
2026-06-19T05:17:21.5586469Z         }
2026-06-19T05:17:21.5586556Z       }
2026-06-19T05:17:21.5586637Z     },
2026-06-19T05:17:21.5586713Z     {
2026-06-19T05:17:21.5586832Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-19T05:17:21.5586981Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-19T05:17:21.5587075Z       "requiredStages": [
2026-06-19T05:17:21.5587162Z         "impl",
2026-06-19T05:17:21.5587247Z         "unit"
2026-06-19T05:17:21.5587328Z       ],
2026-06-19T05:17:21.5587418Z       "stages": {
2026-06-19T05:17:21.5587506Z         "doc": {
2026-06-19T05:17:21.5587605Z           "complete": false,
2026-06-19T05:17:21.5587695Z           "evidence": []
2026-06-19T05:17:21.5587782Z         },
2026-06-19T05:17:21.5587868Z         "impl": {
2026-06-19T05:17:21.5587953Z           "complete": true,
2026-06-19T05:17:21.5588039Z           "evidence": [
2026-06-19T05:17:21.5588121Z             {
2026-06-19T05:17:21.5588244Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5588320Z               "line": 342
2026-06-19T05:17:21.5588412Z             },
2026-06-19T05:17:21.5588493Z             {
2026-06-19T05:17:21.5588601Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5588686Z               "line": 353
2026-06-19T05:17:21.5588772Z             },
2026-06-19T05:17:21.5588857Z             {
2026-06-19T05:17:21.5589031Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5589123Z               "line": 371
2026-06-19T05:17:21.5589209Z             }
2026-06-19T05:17:21.5589280Z           ]
2026-06-19T05:17:21.5589366Z         },
2026-06-19T05:17:21.5589457Z         "int": {
2026-06-19T05:17:21.5589562Z           "complete": false,
2026-06-19T05:17:21.5589646Z           "evidence": []
2026-06-19T05:17:21.5589729Z         },
2026-06-19T05:17:21.5589805Z         "unit": {
2026-06-19T05:17:21.5589909Z           "complete": true,
2026-06-19T05:17:21.5589995Z           "evidence": [
2026-06-19T05:17:21.5590077Z             {
2026-06-19T05:17:21.5590190Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5590267Z               "line": 395
2026-06-19T05:17:21.5590353Z             },
2026-06-19T05:17:21.5590430Z             {
2026-06-19T05:17:21.5590533Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5590624Z               "line": 416
2026-06-19T05:17:21.5590698Z             },
2026-06-19T05:17:21.5590911Z             {
2026-06-19T05:17:21.5591022Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5591107Z               "line": 785
2026-06-19T05:17:21.5591186Z             },
2026-06-19T05:17:21.5591272Z             {
2026-06-19T05:17:21.5591381Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5591471Z               "line": 796
2026-06-19T05:17:21.5591550Z             },
2026-06-19T05:17:21.5591632Z             {
2026-06-19T05:17:21.5591837Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5591918Z               "line": 809
2026-06-19T05:17:21.5592005Z             }
2026-06-19T05:17:21.5592090Z           ]
2026-06-19T05:17:21.5592170Z         }
2026-06-19T05:17:21.5592256Z       }
2026-06-19T05:17:21.5592343Z     },
2026-06-19T05:17:21.5592429Z     {
2026-06-19T05:17:21.5592542Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-19T05:17:21.5593106Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-19T05:17:21.5593215Z       "requiredStages": [
2026-06-19T05:17:21.5593297Z         "impl",
2026-06-19T05:17:21.5593382Z         "unit"
2026-06-19T05:17:21.5593467Z       ],
2026-06-19T05:17:21.5593550Z       "stages": {
2026-06-19T05:17:21.5593627Z         "doc": {
2026-06-19T05:17:21.5593724Z           "complete": false,
2026-06-19T05:17:21.5593855Z           "evidence": []
2026-06-19T05:17:21.5593946Z         },
2026-06-19T05:17:21.5594053Z         "impl": {
2026-06-19T05:17:21.5594144Z           "complete": true,
2026-06-19T05:17:21.5594230Z           "evidence": [
2026-06-19T05:17:21.5594317Z             {
2026-06-19T05:17:21.5594444Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5594544Z               "line": 759
2026-06-19T05:17:21.5594621Z             }
2026-06-19T05:17:21.5594706Z           ]
2026-06-19T05:17:21.5594792Z         },
2026-06-19T05:17:21.5594879Z         "int": {
2026-06-19T05:17:21.5594959Z           "complete": false,
2026-06-19T05:17:21.5595044Z           "evidence": []
2026-06-19T05:17:21.5595131Z         },
2026-06-19T05:17:21.5595208Z         "unit": {
2026-06-19T05:17:21.5595293Z           "complete": true,
2026-06-19T05:17:21.5595378Z           "evidence": [
2026-06-19T05:17:21.5595465Z             {
2026-06-19T05:17:21.5595584Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5595674Z               "line": 873
2026-06-19T05:17:21.5595760Z             }
2026-06-19T05:17:21.5595847Z           ]
2026-06-19T05:17:21.5595936Z         }
2026-06-19T05:17:21.5596017Z       }
2026-06-19T05:17:21.5596099Z     },
2026-06-19T05:17:21.5596186Z     {
2026-06-19T05:17:21.5596317Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
2026-06-19T05:17:21.5598632Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
2026-06-19T05:17:21.5598748Z       "requiredStages": [
2026-06-19T05:17:21.5598832Z         "impl",
2026-06-19T05:17:21.5598909Z         "unit",
2026-06-19T05:17:21.5599063Z         "int"
2026-06-19T05:17:21.5599151Z       ],
2026-06-19T05:17:21.5599236Z       "stages": {
2026-06-19T05:17:21.5599445Z         "doc": {
2026-06-19T05:17:21.5599549Z           "complete": false,
2026-06-19T05:17:21.5599630Z           "evidence": []
2026-06-19T05:17:21.5599717Z         },
2026-06-19T05:17:21.5599802Z         "impl": {
2026-06-19T05:17:21.5599906Z           "complete": true,
2026-06-19T05:17:21.5599998Z           "evidence": [
2026-06-19T05:17:21.5600084Z             {
2026-06-19T05:17:21.5600211Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5600309Z               "line": 693
2026-06-19T05:17:21.5600493Z             }
2026-06-19T05:17:21.5600575Z           ]
2026-06-19T05:17:21.5600656Z         },
2026-06-19T05:17:21.5600741Z         "int": {
2026-06-19T05:17:21.5600832Z           "complete": true,
2026-06-19T05:17:21.5600928Z           "evidence": [
2026-06-19T05:17:21.5601004Z             {
2026-06-19T05:17:21.5601147Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
2026-06-19T05:17:21.5601228Z               "line": 24
2026-06-19T05:17:21.5601319Z             }
2026-06-19T05:17:21.5601394Z           ]
2026-06-19T05:17:21.5601480Z         },
2026-06-19T05:17:21.5601572Z         "unit": {
2026-06-19T05:17:21.5601662Z           "complete": true,
2026-06-19T05:17:21.5601756Z           "evidence": [
2026-06-19T05:17:21.5601832Z             {
2026-06-19T05:17:21.5601961Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5602040Z               "line": 859
2026-06-19T05:17:21.5602130Z             }
2026-06-19T05:17:21.5602216Z           ]
2026-06-19T05:17:21.5602298Z         }
2026-06-19T05:17:21.5602383Z       }
2026-06-19T05:17:21.5602468Z     },
2026-06-19T05:17:21.5602555Z     {
2026-06-19T05:17:21.5602675Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
2026-06-19T05:17:21.5606191Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
2026-06-19T05:17:21.5606316Z       "requiredStages": [
2026-06-19T05:17:21.5606407Z         "impl",
2026-06-19T05:17:21.5606497Z         "unit",
2026-06-19T05:17:21.5606587Z         "int"
2026-06-19T05:17:21.5606674Z       ],
2026-06-19T05:17:21.5606765Z       "stages": {
2026-06-19T05:17:21.5606849Z         "doc": {
2026-06-19T05:17:21.5606934Z           "complete": false,
2026-06-19T05:17:21.5607030Z           "evidence": []
2026-06-19T05:17:21.5607120Z         },
2026-06-19T05:17:21.5607199Z         "impl": {
2026-06-19T05:17:21.5607289Z           "complete": true,
2026-06-19T05:17:21.5607386Z           "evidence": [
2026-06-19T05:17:21.5607467Z             {
2026-06-19T05:17:21.5607594Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5607691Z               "line": 391
2026-06-19T05:17:21.5607777Z             },
2026-06-19T05:17:21.5607862Z             {
2026-06-19T05:17:21.5607967Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5608067Z               "line": 318
2026-06-19T05:17:21.5608238Z             },
2026-06-19T05:17:21.5608316Z             {
2026-06-19T05:17:21.5608430Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5608515Z               "line": 1643
2026-06-19T05:17:21.5608606Z             },
2026-06-19T05:17:21.5608692Z             {
2026-06-19T05:17:21.5608801Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5608887Z               "line": 3067
2026-06-19T05:17:21.5609054Z             }
2026-06-19T05:17:21.5609140Z           ]
2026-06-19T05:17:21.5609322Z         },
2026-06-19T05:17:21.5609402Z         "int": {
2026-06-19T05:17:21.5609498Z           "complete": true,
2026-06-19T05:17:21.5609590Z           "evidence": [
2026-06-19T05:17:21.5609669Z             {
2026-06-19T05:17:21.5609811Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:17:21.5609892Z               "line": 353
2026-06-19T05:17:21.5609968Z             },
2026-06-19T05:17:21.5610062Z             {
2026-06-19T05:17:21.5610204Z               "path": "crates/spt/tests/livehost_psyche_fail_e2e.rs",
2026-06-19T05:17:21.5610296Z               "line": 23
2026-06-19T05:17:21.5610386Z             }
2026-06-19T05:17:21.5610471Z           ]
2026-06-19T05:17:21.5610554Z         },
2026-06-19T05:17:21.5610634Z         "unit": {
2026-06-19T05:17:21.5610724Z           "complete": true,
2026-06-19T05:17:21.5610820Z           "evidence": [
2026-06-19T05:17:21.5610897Z             {
2026-06-19T05:17:21.5611020Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5611115Z               "line": 717
2026-06-19T05:17:21.5611207Z             },
2026-06-19T05:17:21.5611287Z             {
2026-06-19T05:17:21.5611387Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5611478Z               "line": 7720
2026-06-19T05:17:21.5611569Z             }
2026-06-19T05:17:21.5611654Z           ]
2026-06-19T05:17:21.5611735Z         }
2026-06-19T05:17:21.5611822Z       }
2026-06-19T05:17:21.5611903Z     },
2026-06-19T05:17:21.5611988Z     {
2026-06-19T05:17:21.5612108Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
2026-06-19T05:17:21.5615326Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
2026-06-19T05:17:21.5615437Z       "requiredStages": [
2026-06-19T05:17:21.5615522Z         "impl",
2026-06-19T05:17:21.5615603Z         "unit",
2026-06-19T05:17:21.5615679Z         "int"
2026-06-19T05:17:21.5615765Z       ],
2026-06-19T05:17:21.5615846Z       "stages": {
2026-06-19T05:17:21.5615941Z         "doc": {
2026-06-19T05:17:21.5616038Z           "complete": false,
2026-06-19T05:17:21.5616133Z           "evidence": []
2026-06-19T05:17:21.5616212Z         },
2026-06-19T05:17:21.5616300Z         "impl": {
2026-06-19T05:17:21.5616395Z           "complete": true,
2026-06-19T05:17:21.5616490Z           "evidence": [
2026-06-19T05:17:21.5616580Z             {
2026-06-19T05:17:21.5616710Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5616805Z               "line": 64
2026-06-19T05:17:21.5616991Z             },
2026-06-19T05:17:21.5617080Z             {
2026-06-19T05:17:21.5617191Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5617282Z               "line": 78
2026-06-19T05:17:21.5617367Z             },
2026-06-19T05:17:21.5617452Z             {
2026-06-19T05:17:21.5617566Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5617652Z               "line": 170
2026-06-19T05:17:21.5617736Z             },
2026-06-19T05:17:21.5617893Z             {
2026-06-19T05:17:21.5618009Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5618107Z               "line": 185
2026-06-19T05:17:21.5618188Z             },
2026-06-19T05:17:21.5618275Z             {
2026-06-19T05:17:21.5618389Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5618484Z               "line": 195
2026-06-19T05:17:21.5618571Z             },
2026-06-19T05:17:21.5618656Z             {
2026-06-19T05:17:21.5618779Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5618871Z               "line": 205
2026-06-19T05:17:21.5619023Z             },
2026-06-19T05:17:21.5619104Z             {
2026-06-19T05:17:21.5619224Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5619309Z               "line": 294
2026-06-19T05:17:21.5619390Z             },
2026-06-19T05:17:21.5619486Z             {
2026-06-19T05:17:21.5619600Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5619690Z               "line": 308
2026-06-19T05:17:21.5619772Z             },
2026-06-19T05:17:21.5619854Z             {
2026-06-19T05:17:21.5619962Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5620058Z               "line": 377
2026-06-19T05:17:21.5620135Z             },
2026-06-19T05:17:21.5620221Z             {
2026-06-19T05:17:21.5620333Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5620424Z               "line": 437
2026-06-19T05:17:21.5620505Z             },
2026-06-19T05:17:21.5620589Z             {
2026-06-19T05:17:21.5620711Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5620808Z               "line": 455
2026-06-19T05:17:21.5620890Z             }
2026-06-19T05:17:21.5620979Z           ]
2026-06-19T05:17:21.5621060Z         },
2026-06-19T05:17:21.5621142Z         "int": {
2026-06-19T05:17:21.5621228Z           "complete": true,
2026-06-19T05:17:21.5621318Z           "evidence": [
2026-06-19T05:17:21.5621399Z             {
2026-06-19T05:17:21.5621538Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:17:21.5621637Z               "line": 45
2026-06-19T05:17:21.5621709Z             },
2026-06-19T05:17:21.5621791Z             {
2026-06-19T05:17:21.5621928Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:17:21.5622014Z               "line": 354
2026-06-19T05:17:21.5622101Z             },
2026-06-19T05:17:21.5622186Z             {
2026-06-19T05:17:21.5622339Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-19T05:17:21.5622425Z               "line": 31
2026-06-19T05:17:21.5622509Z             }
2026-06-19T05:17:21.5622601Z           ]
2026-06-19T05:17:21.5622683Z         },
2026-06-19T05:17:21.5622768Z         "unit": {
2026-06-19T05:17:21.5622862Z           "complete": true,
2026-06-19T05:17:21.5622961Z           "evidence": [
2026-06-19T05:17:21.5623038Z             {
2026-06-19T05:17:21.5623165Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5623259Z               "line": 715
2026-06-19T05:17:21.5623341Z             }
2026-06-19T05:17:21.5623428Z           ]
2026-06-19T05:17:21.5623508Z         }
2026-06-19T05:17:21.5623593Z       }
2026-06-19T05:17:21.5623685Z     },
2026-06-19T05:17:21.5623761Z     {
2026-06-19T05:17:21.5623870Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-19T05:17:21.5624081Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-19T05:17:21.5624301Z       "requiredStages": [
2026-06-19T05:17:21.5624390Z         "impl",
2026-06-19T05:17:21.5624481Z         "unit"
2026-06-19T05:17:21.5624562Z       ],
2026-06-19T05:17:21.5624653Z       "stages": {
2026-06-19T05:17:21.5624738Z         "doc": {
2026-06-19T05:17:21.5624824Z           "complete": false,
2026-06-19T05:17:21.5624925Z           "evidence": []
2026-06-19T05:17:21.5625015Z         },
2026-06-19T05:17:21.5625181Z         "impl": {
2026-06-19T05:17:21.5625283Z           "complete": true,
2026-06-19T05:17:21.5625367Z           "evidence": [
2026-06-19T05:17:21.5625454Z             {
2026-06-19T05:17:21.5625559Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5625645Z               "line": 14
2026-06-19T05:17:21.5625729Z             },
2026-06-19T05:17:21.5625814Z             {
2026-06-19T05:17:21.5625929Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.5626025Z               "line": 566
2026-06-19T05:17:21.5626114Z             }
2026-06-19T05:17:21.5626196Z           ]
2026-06-19T05:17:21.5626288Z         },
2026-06-19T05:17:21.5626373Z         "int": {
2026-06-19T05:17:21.5626472Z           "complete": false,
2026-06-19T05:17:21.5626564Z           "evidence": []
2026-06-19T05:17:21.5626649Z         },
2026-06-19T05:17:21.5626740Z         "unit": {
2026-06-19T05:17:21.5626825Z           "complete": true,
2026-06-19T05:17:21.5626921Z           "evidence": [
2026-06-19T05:17:21.5627002Z             {
2026-06-19T05:17:21.5627107Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5627194Z               "line": 130
2026-06-19T05:17:21.5627279Z             },
2026-06-19T05:17:21.5627369Z             {
2026-06-19T05:17:21.5627465Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5627561Z               "line": 138
2026-06-19T05:17:21.5627645Z             },
2026-06-19T05:17:21.5627731Z             {
2026-06-19T05:17:21.5627838Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5627922Z               "line": 146
2026-06-19T05:17:21.5628007Z             },
2026-06-19T05:17:21.5628088Z             {
2026-06-19T05:17:21.5628188Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5628287Z               "line": 154
2026-06-19T05:17:21.5628372Z             },
2026-06-19T05:17:21.5628458Z             {
2026-06-19T05:17:21.5628569Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5628662Z               "line": 162
2026-06-19T05:17:21.5628744Z             },
2026-06-19T05:17:21.5628826Z             {
2026-06-19T05:17:21.5628925Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:17:21.5629112Z               "line": 170
2026-06-19T05:17:21.5629197Z             }
2026-06-19T05:17:21.5629273Z           ]
2026-06-19T05:17:21.5629354Z         }
2026-06-19T05:17:21.5629441Z       }
2026-06-19T05:17:21.5629526Z     },
2026-06-19T05:17:21.5629607Z     {
2026-06-19T05:17:21.5629727Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-19T05:17:21.5630594Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-19T05:17:21.5630705Z       "requiredStages": [
2026-06-19T05:17:21.5630804Z         "impl",
2026-06-19T05:17:21.5630879Z         "unit"
2026-06-19T05:17:21.5630974Z       ],
2026-06-19T05:17:21.5631051Z       "stages": {
2026-06-19T05:17:21.5631140Z         "doc": {
2026-06-19T05:17:21.5631239Z           "complete": false,
2026-06-19T05:17:21.5631325Z           "evidence": []
2026-06-19T05:17:21.5631406Z         },
2026-06-19T05:17:21.5631483Z         "impl": {
2026-06-19T05:17:21.5631573Z           "complete": true,
2026-06-19T05:17:21.5631664Z           "evidence": [
2026-06-19T05:17:21.5631745Z             {
2026-06-19T05:17:21.5632003Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5632083Z               "line": 34
2026-06-19T05:17:21.5632164Z             }
2026-06-19T05:17:21.5632250Z           ]
2026-06-19T05:17:21.5632332Z         },
2026-06-19T05:17:21.5632417Z         "int": {
2026-06-19T05:17:21.5632517Z           "complete": false,
2026-06-19T05:17:21.5632613Z           "evidence": []
2026-06-19T05:17:21.5632694Z         },
2026-06-19T05:17:21.5632789Z         "unit": {
2026-06-19T05:17:21.5632981Z           "complete": true,
2026-06-19T05:17:21.5633074Z           "evidence": [
2026-06-19T05:17:21.5633156Z             {
2026-06-19T05:17:21.5633301Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5633384Z               "line": 188
2026-06-19T05:17:21.5633470Z             },
2026-06-19T05:17:21.5633555Z             {
2026-06-19T05:17:21.5633687Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5633782Z               "line": 200
2026-06-19T05:17:21.5633863Z             },
2026-06-19T05:17:21.5633954Z             {
2026-06-19T05:17:21.5634092Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5634183Z               "line": 211
2026-06-19T05:17:21.5634274Z             },
2026-06-19T05:17:21.5634355Z             {
2026-06-19T05:17:21.5634487Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5634570Z               "line": 253
2026-06-19T05:17:21.5634665Z             },
2026-06-19T05:17:21.5634764Z             {
2026-06-19T05:17:21.5634894Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5634988Z               "line": 277
2026-06-19T05:17:21.5635064Z             },
2026-06-19T05:17:21.5635156Z             {
2026-06-19T05:17:21.5635289Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5635384Z               "line": 300
2026-06-19T05:17:21.5635471Z             },
2026-06-19T05:17:21.5635552Z             {
2026-06-19T05:17:21.5635685Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:17:21.5635776Z               "line": 316
2026-06-19T05:17:21.5635857Z             }
2026-06-19T05:17:21.5635941Z           ]
2026-06-19T05:17:21.5636023Z         }
2026-06-19T05:17:21.5636110Z       }
2026-06-19T05:17:21.5636191Z     },
2026-06-19T05:17:21.5636284Z     {
2026-06-19T05:17:21.5636398Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-19T05:17:21.5636914Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-19T05:17:21.5637023Z       "requiredStages": [
2026-06-19T05:17:21.5637106Z         "impl",
2026-06-19T05:17:21.5637186Z         "unit"
2026-06-19T05:17:21.5637276Z       ],
2026-06-19T05:17:21.5637372Z       "stages": {
2026-06-19T05:17:21.5637458Z         "doc": {
2026-06-19T05:17:21.5637562Z           "complete": false,
2026-06-19T05:17:21.5637657Z           "evidence": []
2026-06-19T05:17:21.5637740Z         },
2026-06-19T05:17:21.5637830Z         "impl": {
2026-06-19T05:17:21.5637915Z           "complete": true,
2026-06-19T05:17:21.5638006Z           "evidence": [
2026-06-19T05:17:21.5638088Z             {
2026-06-19T05:17:21.5638215Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5638311Z               "line": 29
2026-06-19T05:17:21.5641054Z             },
2026-06-19T05:17:21.5641163Z             {
2026-06-19T05:17:21.5641289Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5641378Z               "line": 174
2026-06-19T05:17:21.5641463Z             },
2026-06-19T05:17:21.5641554Z             {
2026-06-19T05:17:21.5641681Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5641761Z               "line": 194
2026-06-19T05:17:21.5641846Z             },
2026-06-19T05:17:21.5642076Z             {
2026-06-19T05:17:21.5642190Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5642277Z               "line": 222
2026-06-19T05:17:21.5642367Z             }
2026-06-19T05:17:21.5642452Z           ]
2026-06-19T05:17:21.5642534Z         },
2026-06-19T05:17:21.5642620Z         "int": {
2026-06-19T05:17:21.5642719Z           "complete": false,
2026-06-19T05:17:21.5642805Z           "evidence": []
2026-06-19T05:17:21.5642887Z         },
2026-06-19T05:17:21.5642967Z         "unit": {
2026-06-19T05:17:21.5643159Z           "complete": true,
2026-06-19T05:17:21.5643240Z           "evidence": [
2026-06-19T05:17:21.5643324Z             {
2026-06-19T05:17:21.5643444Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5643531Z               "line": 329
2026-06-19T05:17:21.5643611Z             },
2026-06-19T05:17:21.5643697Z             {
2026-06-19T05:17:21.5643822Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5643917Z               "line": 344
2026-06-19T05:17:21.5644006Z             },
2026-06-19T05:17:21.5644081Z             {
2026-06-19T05:17:21.5644187Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5644271Z               "line": 417
2026-06-19T05:17:21.5644351Z             },
2026-06-19T05:17:21.5644442Z             {
2026-06-19T05:17:21.5644538Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5644638Z               "line": 433
2026-06-19T05:17:21.5644718Z             },
2026-06-19T05:17:21.5644801Z             {
2026-06-19T05:17:21.5644906Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5645005Z               "line": 492
2026-06-19T05:17:21.5645096Z             },
2026-06-19T05:17:21.5645172Z             {
2026-06-19T05:17:21.5645281Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5645367Z               "line": 506
2026-06-19T05:17:21.5645449Z             },
2026-06-19T05:17:21.5645529Z             {
2026-06-19T05:17:21.5645649Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5645740Z               "line": 517
2026-06-19T05:17:21.5645825Z             },
2026-06-19T05:17:21.5645906Z             {
2026-06-19T05:17:21.5646011Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5646093Z               "line": 528
2026-06-19T05:17:21.5646168Z             }
2026-06-19T05:17:21.5646254Z           ]
2026-06-19T05:17:21.5646346Z         }
2026-06-19T05:17:21.5646432Z       }
2026-06-19T05:17:21.5646521Z     },
2026-06-19T05:17:21.5646607Z     {
2026-06-19T05:17:21.5646737Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-19T05:17:21.5647422Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-19T05:17:21.5647516Z       "requiredStages": [
2026-06-19T05:17:21.5647607Z         "impl",
2026-06-19T05:17:21.5647694Z         "unit"
2026-06-19T05:17:21.5647775Z       ],
2026-06-19T05:17:21.5647860Z       "stages": {
2026-06-19T05:17:21.5647951Z         "doc": {
2026-06-19T05:17:21.5648051Z           "complete": false,
2026-06-19T05:17:21.5648142Z           "evidence": []
2026-06-19T05:17:21.5648236Z         },
2026-06-19T05:17:21.5648324Z         "impl": {
2026-06-19T05:17:21.5648418Z           "complete": true,
2026-06-19T05:17:21.5648504Z           "evidence": [
2026-06-19T05:17:21.5648595Z             {
2026-06-19T05:17:21.5648747Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5648842Z               "line": 27
2026-06-19T05:17:21.5648919Z             },
2026-06-19T05:17:21.5649085Z             {
2026-06-19T05:17:21.5649213Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5649294Z               "line": 110
2026-06-19T05:17:21.5649379Z             },
2026-06-19T05:17:21.5649463Z             {
2026-06-19T05:17:21.5649593Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5649787Z               "line": 153
2026-06-19T05:17:21.5649864Z             },
2026-06-19T05:17:21.5649956Z             {
2026-06-19T05:17:21.5650079Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5650169Z               "line": 182
2026-06-19T05:17:21.5650256Z             },
2026-06-19T05:17:21.5650336Z             {
2026-06-19T05:17:21.5650484Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5650675Z               "line": 31
2026-06-19T05:17:21.5650755Z             },
2026-06-19T05:17:21.5650837Z             {
2026-06-19T05:17:21.5650985Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5651080Z               "line": 113
2026-06-19T05:17:21.5651162Z             },
2026-06-19T05:17:21.5651252Z             {
2026-06-19T05:17:21.5651390Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5651482Z               "line": 138
2026-06-19T05:17:21.5651567Z             }
2026-06-19T05:17:21.5651652Z           ]
2026-06-19T05:17:21.5651733Z         },
2026-06-19T05:17:21.5651811Z         "int": {
2026-06-19T05:17:21.5651901Z           "complete": false,
2026-06-19T05:17:21.5651990Z           "evidence": []
2026-06-19T05:17:21.5652071Z         },
2026-06-19T05:17:21.5652152Z         "unit": {
2026-06-19T05:17:21.5652237Z           "complete": true,
2026-06-19T05:17:21.5652330Z           "evidence": [
2026-06-19T05:17:21.5652407Z             {
2026-06-19T05:17:21.5652541Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5652631Z               "line": 261
2026-06-19T05:17:21.5652712Z             },
2026-06-19T05:17:21.5652804Z             {
2026-06-19T05:17:21.5652927Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5653012Z               "line": 276
2026-06-19T05:17:21.5653085Z             },
2026-06-19T05:17:21.5653171Z             {
2026-06-19T05:17:21.5653294Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5653384Z               "line": 293
2026-06-19T05:17:21.5653471Z             },
2026-06-19T05:17:21.5653561Z             {
2026-06-19T05:17:21.5653690Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5653772Z               "line": 310
2026-06-19T05:17:21.5653861Z             },
2026-06-19T05:17:21.5653938Z             {
2026-06-19T05:17:21.5654067Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5654167Z               "line": 327
2026-06-19T05:17:21.5654243Z             },
2026-06-19T05:17:21.5654329Z             {
2026-06-19T05:17:21.5654444Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.5654538Z               "line": 366
2026-06-19T05:17:21.5654628Z             },
2026-06-19T05:17:21.5654704Z             {
2026-06-19T05:17:21.5654841Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5654931Z               "line": 179
2026-06-19T05:17:21.5655021Z             },
2026-06-19T05:17:21.5655103Z             {
2026-06-19T05:17:21.5655245Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5655336Z               "line": 194
2026-06-19T05:17:21.5655413Z             },
2026-06-19T05:17:21.5655498Z             {
2026-06-19T05:17:21.5655642Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5655732Z               "line": 204
2026-06-19T05:17:21.5655823Z             },
2026-06-19T05:17:21.5655903Z             {
2026-06-19T05:17:21.5656047Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5656142Z               "line": 259
2026-06-19T05:17:21.5656228Z             },
2026-06-19T05:17:21.5656315Z             {
2026-06-19T05:17:21.5656457Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5656625Z               "line": 269
2026-06-19T05:17:21.5656710Z             },
2026-06-19T05:17:21.5656800Z             {
2026-06-19T05:17:21.5656925Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.5657020Z               "line": 283
2026-06-19T05:17:21.5657100Z             }
2026-06-19T05:17:21.5657172Z           ]
2026-06-19T05:17:21.5657254Z         }
2026-06-19T05:17:21.5657349Z       }
2026-06-19T05:17:21.5657433Z     },
2026-06-19T05:17:21.5657513Z     {
2026-06-19T05:17:21.5657705Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-19T05:17:21.5657891Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-19T05:17:21.5657991Z       "requiredStages": [],
2026-06-19T05:17:21.5658072Z       "stages": {
2026-06-19T05:17:21.5658157Z         "doc": {
2026-06-19T05:17:21.5658254Z           "complete": false,
2026-06-19T05:17:21.5658340Z           "evidence": []
2026-06-19T05:17:21.5658429Z         },
2026-06-19T05:17:21.5658516Z         "impl": {
2026-06-19T05:17:21.5658621Z           "complete": false,
2026-06-19T05:17:21.5658706Z           "evidence": []
2026-06-19T05:17:21.5658787Z         },
2026-06-19T05:17:21.5658874Z         "int": {
2026-06-19T05:17:21.5659026Z           "complete": false,
2026-06-19T05:17:21.5659121Z           "evidence": []
2026-06-19T05:17:21.5659204Z         },
2026-06-19T05:17:21.5659279Z         "unit": {
2026-06-19T05:17:21.5659374Z           "complete": false,
2026-06-19T05:17:21.5659460Z           "evidence": []
2026-06-19T05:17:21.5659551Z         }
2026-06-19T05:17:21.5659636Z       }
2026-06-19T05:17:21.5659716Z     },
2026-06-19T05:17:21.5659802Z     {
2026-06-19T05:17:21.5659929Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-19T05:17:21.5660719Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-19T05:17:21.5660825Z       "requiredStages": [
2026-06-19T05:17:21.5660906Z         "impl",
2026-06-19T05:17:21.5660987Z         "unit"
2026-06-19T05:17:21.5661068Z       ],
2026-06-19T05:17:21.5661159Z       "stages": {
2026-06-19T05:17:21.5661245Z         "doc": {
2026-06-19T05:17:21.5661344Z           "complete": false,
2026-06-19T05:17:21.5661436Z           "evidence": []
2026-06-19T05:17:21.5661516Z         },
2026-06-19T05:17:21.5661597Z         "impl": {
2026-06-19T05:17:21.5661698Z           "complete": true,
2026-06-19T05:17:21.5661789Z           "evidence": [
2026-06-19T05:17:21.5661878Z             {
2026-06-19T05:17:21.5661998Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5662089Z               "line": 26
2026-06-19T05:17:21.5662169Z             },
2026-06-19T05:17:21.5662251Z             {
2026-06-19T05:17:21.5662376Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5662461Z               "line": 95
2026-06-19T05:17:21.5662550Z             },
2026-06-19T05:17:21.5662631Z             {
2026-06-19T05:17:21.5662750Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5662839Z               "line": 166
2026-06-19T05:17:21.5662924Z             },
2026-06-19T05:17:21.5663010Z             {
2026-06-19T05:17:21.5663125Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5663224Z               "line": 19
2026-06-19T05:17:21.5663305Z             },
2026-06-19T05:17:21.5663397Z             {
2026-06-19T05:17:21.5663515Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5663601Z               "line": 50
2026-06-19T05:17:21.5663683Z             },
2026-06-19T05:17:21.5663768Z             {
2026-06-19T05:17:21.5663877Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:17:21.5663959Z               "line": 18
2026-06-19T05:17:21.5664041Z             },
2026-06-19T05:17:21.5664126Z             {
2026-06-19T05:17:21.5664231Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:17:21.5664435Z               "line": 71
2026-06-19T05:17:21.5664516Z             },
2026-06-19T05:17:21.5664599Z             {
2026-06-19T05:17:21.5664708Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.5664783Z               "line": 87
2026-06-19T05:17:21.5664875Z             }
2026-06-19T05:17:21.5664957Z           ]
2026-06-19T05:17:21.5665047Z         },
2026-06-19T05:17:21.5665126Z         "int": {
2026-06-19T05:17:21.5665326Z           "complete": false,
2026-06-19T05:17:21.5665415Z           "evidence": []
2026-06-19T05:17:21.5665500Z         },
2026-06-19T05:17:21.5665596Z         "unit": {
2026-06-19T05:17:21.5665688Z           "complete": true,
2026-06-19T05:17:21.5665781Z           "evidence": [
2026-06-19T05:17:21.5665858Z             {
2026-06-19T05:17:21.5665982Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5666077Z               "line": 289
2026-06-19T05:17:21.5666163Z             },
2026-06-19T05:17:21.5666260Z             {
2026-06-19T05:17:21.5666374Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5666468Z               "line": 314
2026-06-19T05:17:21.5666545Z             },
2026-06-19T05:17:21.5666622Z             {
2026-06-19T05:17:21.5666735Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5666826Z               "line": 350
2026-06-19T05:17:21.5666918Z             },
2026-06-19T05:17:21.5666998Z             {
2026-06-19T05:17:21.5667122Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5667209Z               "line": 418
2026-06-19T05:17:21.5667293Z             },
2026-06-19T05:17:21.5667379Z             {
2026-06-19T05:17:21.5667495Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5667580Z               "line": 429
2026-06-19T05:17:21.5667665Z             },
2026-06-19T05:17:21.5667747Z             {
2026-06-19T05:17:21.5667867Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5667960Z               "line": 460
2026-06-19T05:17:21.5668046Z             },
2026-06-19T05:17:21.5668127Z             {
2026-06-19T05:17:21.5668243Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.5668322Z               "line": 471
2026-06-19T05:17:21.5668412Z             },
2026-06-19T05:17:21.5668485Z             {
2026-06-19T05:17:21.5668595Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5668680Z               "line": 77
2026-06-19T05:17:21.5668762Z             },
2026-06-19T05:17:21.5668843Z             {
2026-06-19T05:17:21.5669018Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5669105Z               "line": 97
2026-06-19T05:17:21.5669190Z             },
2026-06-19T05:17:21.5669266Z             {
2026-06-19T05:17:21.5669386Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5669472Z               "line": 112
2026-06-19T05:17:21.5669557Z             },
2026-06-19T05:17:21.5669638Z             {
2026-06-19T05:17:21.5669754Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5669843Z               "line": 123
2026-06-19T05:17:21.5669924Z             },
2026-06-19T05:17:21.5670010Z             {
2026-06-19T05:17:21.5670112Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5670196Z               "line": 130
2026-06-19T05:17:21.5670285Z             },
2026-06-19T05:17:21.5670371Z             {
2026-06-19T05:17:21.5670489Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:17:21.5670570Z               "line": 145
2026-06-19T05:17:21.5670655Z             },
2026-06-19T05:17:21.5670737Z             {
2026-06-19T05:17:21.5670851Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:17:21.5670941Z               "line": 115
2026-06-19T05:17:21.5671032Z             },
2026-06-19T05:17:21.5671109Z             {
2026-06-19T05:17:21.5671218Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:17:21.5671405Z               "line": 130
2026-06-19T05:17:21.5671485Z             },
2026-06-19T05:17:21.5671566Z             {
2026-06-19T05:17:21.5671672Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.5671752Z               "line": 428
2026-06-19T05:17:21.5671833Z             }
2026-06-19T05:17:21.5671919Z           ]
2026-06-19T05:17:21.5672006Z         }
2026-06-19T05:17:21.5672086Z       }
2026-06-19T05:17:21.5672172Z     },
2026-06-19T05:17:21.5672358Z     {
2026-06-19T05:17:21.5672462Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-19T05:17:21.5673282Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-19T05:17:21.5673385Z       "requiredStages": [
2026-06-19T05:17:21.5673470Z         "doc",
2026-06-19T05:17:21.5673565Z         "impl",
2026-06-19T05:17:21.5673647Z         "unit"
2026-06-19T05:17:21.5673728Z       ],
2026-06-19T05:17:21.5673808Z       "stages": {
2026-06-19T05:17:21.5673895Z         "doc": {
2026-06-19T05:17:21.5673986Z           "complete": true,
2026-06-19T05:17:21.5674075Z           "evidence": [
2026-06-19T05:17:21.5674156Z             {
2026-06-19T05:17:21.5674272Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5674358Z               "line": 374
2026-06-19T05:17:21.5674452Z             }
2026-06-19T05:17:21.5674539Z           ]
2026-06-19T05:17:21.5674624Z         },
2026-06-19T05:17:21.5674705Z         "impl": {
2026-06-19T05:17:21.5674796Z           "complete": true,
2026-06-19T05:17:21.5674882Z           "evidence": [
2026-06-19T05:17:21.5674972Z             {
2026-06-19T05:17:21.5675086Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5675179Z               "line": 200
2026-06-19T05:17:21.5675259Z             },
2026-06-19T05:17:21.5675358Z             {
2026-06-19T05:17:21.5675469Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5675564Z               "line": 304
2026-06-19T05:17:21.5675644Z             },
2026-06-19T05:17:21.5675729Z             {
2026-06-19T05:17:21.5675839Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5675933Z               "line": 516
2026-06-19T05:17:21.5676017Z             },
2026-06-19T05:17:21.5676103Z             {
2026-06-19T05:17:21.5676219Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5676309Z               "line": 531
2026-06-19T05:17:21.5676384Z             },
2026-06-19T05:17:21.5676476Z             {
2026-06-19T05:17:21.5676591Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5676689Z               "line": 1158
2026-06-19T05:17:21.5676777Z             },
2026-06-19T05:17:21.5676862Z             {
2026-06-19T05:17:21.5676990Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5677082Z               "line": 443
2026-06-19T05:17:21.5677163Z             },
2026-06-19T05:17:21.5677248Z             {
2026-06-19T05:17:21.5677372Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5677464Z               "line": 590
2026-06-19T05:17:21.5677539Z             },
2026-06-19T05:17:21.5677624Z             {
2026-06-19T05:17:21.5677740Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5677839Z               "line": 731
2026-06-19T05:17:21.5677930Z             }
2026-06-19T05:17:21.5678021Z           ]
2026-06-19T05:17:21.5678103Z         },
2026-06-19T05:17:21.5678187Z         "int": {
2026-06-19T05:17:21.5678287Z           "complete": false,
2026-06-19T05:17:21.5678375Z           "evidence": []
2026-06-19T05:17:21.5678465Z         },
2026-06-19T05:17:21.5678548Z         "unit": {
2026-06-19T05:17:21.5678648Z           "complete": true,
2026-06-19T05:17:21.5678745Z           "evidence": [
2026-06-19T05:17:21.5678906Z             {
2026-06-19T05:17:21.5679116Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5679202Z               "line": 1155
2026-06-19T05:17:21.5679292Z             },
2026-06-19T05:17:21.5679379Z             {
2026-06-19T05:17:21.5679516Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-19T05:17:21.5679612Z               "line": 30
2026-06-19T05:17:21.5679694Z             }
2026-06-19T05:17:21.5679774Z           ]
2026-06-19T05:17:21.5679859Z         }
2026-06-19T05:17:21.5680061Z       }
2026-06-19T05:17:21.5680142Z     },
2026-06-19T05:17:21.5680222Z     {
2026-06-19T05:17:21.5680352Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
2026-06-19T05:17:21.5683590Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
2026-06-19T05:17:21.5683713Z       "requiredStages": [
2026-06-19T05:17:21.5683794Z         "impl",
2026-06-19T05:17:21.5683880Z         "unit",
2026-06-19T05:17:21.5683954Z         "int"
2026-06-19T05:17:21.5684044Z       ],
2026-06-19T05:17:21.5684135Z       "stages": {
2026-06-19T05:17:21.5684222Z         "doc": {
2026-06-19T05:17:21.5684316Z           "complete": false,
2026-06-19T05:17:21.5684416Z           "evidence": []
2026-06-19T05:17:21.5684503Z         },
2026-06-19T05:17:21.5684593Z         "impl": {
2026-06-19T05:17:21.5684688Z           "complete": true,
2026-06-19T05:17:21.5684770Z           "evidence": [
2026-06-19T05:17:21.5684865Z             {
2026-06-19T05:17:21.5684974Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.5685079Z               "line": 198
2026-06-19T05:17:21.5685156Z             },
2026-06-19T05:17:21.5685237Z             {
2026-06-19T05:17:21.5685336Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.5685429Z               "line": 362
2026-06-19T05:17:21.5685509Z             }
2026-06-19T05:17:21.5685589Z           ]
2026-06-19T05:17:21.5685680Z         },
2026-06-19T05:17:21.5685762Z         "int": {
2026-06-19T05:17:21.5685847Z           "complete": true,
2026-06-19T05:17:21.5685952Z           "evidence": [
2026-06-19T05:17:21.5686034Z             {
2026-06-19T05:17:21.5686157Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:17:21.5686246Z               "line": 400
2026-06-19T05:17:21.5686337Z             }
2026-06-19T05:17:21.5686422Z           ]
2026-06-19T05:17:21.5686512Z         },
2026-06-19T05:17:21.5686601Z         "unit": {
2026-06-19T05:17:21.5686692Z           "complete": true,
2026-06-19T05:17:21.5686779Z           "evidence": [
2026-06-19T05:17:21.5686864Z             {
2026-06-19T05:17:21.5686974Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.5687060Z               "line": 538
2026-06-19T05:17:21.5687146Z             },
2026-06-19T05:17:21.5687226Z             {
2026-06-19T05:17:21.5687332Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.5687422Z               "line": 557
2026-06-19T05:17:21.5687508Z             }
2026-06-19T05:17:21.5687598Z           ]
2026-06-19T05:17:21.5687685Z         }
2026-06-19T05:17:21.5687875Z       }
2026-06-19T05:17:21.5687956Z     },
2026-06-19T05:17:21.5688038Z     {
2026-06-19T05:17:21.5688142Z       "id": "REQ-HAZARD-RC-EOF",
2026-06-19T05:17:21.5692023Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
2026-06-19T05:17:21.5692238Z       "requiredStages": [
2026-06-19T05:17:21.5692323Z         "impl",
2026-06-19T05:17:21.5692409Z         "unit"
2026-06-19T05:17:21.5692492Z       ],
2026-06-19T05:17:21.5692582Z       "stages": {
2026-06-19T05:17:21.5692676Z         "doc": {
2026-06-19T05:17:21.5692759Z           "complete": false,
2026-06-19T05:17:21.5692858Z           "evidence": []
2026-06-19T05:17:21.5692939Z         },
2026-06-19T05:17:21.5693025Z         "impl": {
2026-06-19T05:17:21.5693126Z           "complete": true,
2026-06-19T05:17:21.5693225Z           "evidence": [
2026-06-19T05:17:21.5693306Z             {
2026-06-19T05:17:21.5693412Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.5693493Z               "line": 385
2026-06-19T05:17:21.5693578Z             }
2026-06-19T05:17:21.5693664Z           ]
2026-06-19T05:17:21.5693741Z         },
2026-06-19T05:17:21.5693831Z         "int": {
2026-06-19T05:17:21.5693921Z           "complete": false,
2026-06-19T05:17:21.5694013Z           "evidence": []
2026-06-19T05:17:21.5694099Z         },
2026-06-19T05:17:21.5694178Z         "unit": {
2026-06-19T05:17:21.5694273Z           "complete": true,
2026-06-19T05:17:21.5694354Z           "evidence": [
2026-06-19T05:17:21.5694440Z             {
2026-06-19T05:17:21.5694543Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.5694632Z               "line": 573
2026-06-19T05:17:21.5694719Z             }
2026-06-19T05:17:21.5694791Z           ]
2026-06-19T05:17:21.5694876Z         }
2026-06-19T05:17:21.5694962Z       }
2026-06-19T05:17:21.5695049Z     },
2026-06-19T05:17:21.5695130Z     {
2026-06-19T05:17:21.5695262Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-19T05:17:21.5695515Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-19T05:17:21.5695601Z       "requiredStages": [
2026-06-19T05:17:21.5695683Z         "impl",
2026-06-19T05:17:21.5695768Z         "unit"
2026-06-19T05:17:21.5695854Z       ],
2026-06-19T05:17:21.5695945Z       "stages": {
2026-06-19T05:17:21.5696036Z         "doc": {
2026-06-19T05:17:21.5696140Z           "complete": true,
2026-06-19T05:17:21.5696221Z           "evidence": [
2026-06-19T05:17:21.5696318Z             {
2026-06-19T05:17:21.5696430Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5696522Z               "line": 139
2026-06-19T05:17:21.5696613Z             }
2026-06-19T05:17:21.5696703Z           ]
2026-06-19T05:17:21.5696793Z         },
2026-06-19T05:17:21.5696974Z         "impl": {
2026-06-19T05:17:21.5697076Z           "complete": true,
2026-06-19T05:17:21.5697157Z           "evidence": [
2026-06-19T05:17:21.5697248Z             {
2026-06-19T05:17:21.5697358Z               "path": "crates/spt-store/src/db.rs",
2026-06-19T05:17:21.5697453Z               "line": 29
2026-06-19T05:17:21.5697539Z             },
2026-06-19T05:17:21.5697620Z             {
2026-06-19T05:17:21.5697744Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.5697907Z               "line": 101
2026-06-19T05:17:21.5697997Z             },
2026-06-19T05:17:21.5698087Z             {
2026-06-19T05:17:21.5698212Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5698307Z               "line": 30
2026-06-19T05:17:21.5698392Z             },
2026-06-19T05:17:21.5698478Z             {
2026-06-19T05:17:21.5698588Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5698683Z               "line": 48
2026-06-19T05:17:21.5698768Z             }
2026-06-19T05:17:21.5698851Z           ]
2026-06-19T05:17:21.5698931Z         },
2026-06-19T05:17:21.5699093Z         "int": {
2026-06-19T05:17:21.5699195Z           "complete": false,
2026-06-19T05:17:21.5699279Z           "evidence": []
2026-06-19T05:17:21.5699365Z         },
2026-06-19T05:17:21.5699456Z         "unit": {
2026-06-19T05:17:21.5699537Z           "complete": true,
2026-06-19T05:17:21.5699631Z           "evidence": [
2026-06-19T05:17:21.5699716Z             {
2026-06-19T05:17:21.5699836Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5699928Z               "line": 162
2026-06-19T05:17:21.5700007Z             }
2026-06-19T05:17:21.5700093Z           ]
2026-06-19T05:17:21.5700175Z         }
2026-06-19T05:17:21.5700261Z       }
2026-06-19T05:17:21.5700336Z     },
2026-06-19T05:17:21.5700417Z     {
2026-06-19T05:17:21.5700523Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-19T05:17:21.5700904Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-19T05:17:21.5701008Z       "requiredStages": [
2026-06-19T05:17:21.5701096Z         "doc",
2026-06-19T05:17:21.5701186Z         "impl",
2026-06-19T05:17:21.5701281Z         "unit"
2026-06-19T05:17:21.5701362Z       ],
2026-06-19T05:17:21.5701448Z       "stages": {
2026-06-19T05:17:21.5701538Z         "doc": {
2026-06-19T05:17:21.5701629Z           "complete": true,
2026-06-19T05:17:21.5701710Z           "evidence": [
2026-06-19T05:17:21.5701815Z             {
2026-06-19T05:17:21.5701918Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5702004Z               "line": 151
2026-06-19T05:17:21.5702090Z             }
2026-06-19T05:17:21.5702170Z           ]
2026-06-19T05:17:21.5702255Z         },
2026-06-19T05:17:21.5702335Z         "impl": {
2026-06-19T05:17:21.5702432Z           "complete": true,
2026-06-19T05:17:21.5702522Z           "evidence": [
2026-06-19T05:17:21.5702607Z             {
2026-06-19T05:17:21.5702732Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5702828Z               "line": 22
2026-06-19T05:17:21.5702917Z             }
2026-06-19T05:17:21.5702999Z           ]
2026-06-19T05:17:21.5703085Z         },
2026-06-19T05:17:21.5703166Z         "int": {
2026-06-19T05:17:21.5703265Z           "complete": false,
2026-06-19T05:17:21.5703352Z           "evidence": []
2026-06-19T05:17:21.5703437Z         },
2026-06-19T05:17:21.5703514Z         "unit": {
2026-06-19T05:17:21.5703613Z           "complete": true,
2026-06-19T05:17:21.5703710Z           "evidence": [
2026-06-19T05:17:21.5703795Z             {
2026-06-19T05:17:21.5703914Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5704006Z               "line": 298
2026-06-19T05:17:21.5704100Z             }
2026-06-19T05:17:21.5704185Z           ]
2026-06-19T05:17:21.5704273Z         }
2026-06-19T05:17:21.5704359Z       }
2026-06-19T05:17:21.5704443Z     },
2026-06-19T05:17:21.5704515Z     {
2026-06-19T05:17:21.5704739Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-19T05:17:21.5705183Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-19T05:17:21.5705289Z       "requiredStages": [
2026-06-19T05:17:21.5705371Z         "impl",
2026-06-19T05:17:21.5705460Z         "unit"
2026-06-19T05:17:21.5705546Z       ],
2026-06-19T05:17:21.5705637Z       "stages": {
2026-06-19T05:17:21.5705818Z         "doc": {
2026-06-19T05:17:21.5705919Z           "complete": true,
2026-06-19T05:17:21.5706014Z           "evidence": [
2026-06-19T05:17:21.5706104Z             {
2026-06-19T05:17:21.5706214Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5706304Z               "line": 145
2026-06-19T05:17:21.5706390Z             }
2026-06-19T05:17:21.5706471Z           ]
2026-06-19T05:17:21.5706554Z         },
2026-06-19T05:17:21.5706643Z         "impl": {
2026-06-19T05:17:21.5706733Z           "complete": true,
2026-06-19T05:17:21.5706835Z           "evidence": [
2026-06-19T05:17:21.5706916Z             {
2026-06-19T05:17:21.5707048Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-19T05:17:21.5707130Z               "line": 160
2026-06-19T05:17:21.5707226Z             },
2026-06-19T05:17:21.5707305Z             {
2026-06-19T05:17:21.5707438Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5707529Z               "line": 200
2026-06-19T05:17:21.5707604Z             },
2026-06-19T05:17:21.5707689Z             {
2026-06-19T05:17:21.5707812Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5707899Z               "line": 298
2026-06-19T05:17:21.5707989Z             },
2026-06-19T05:17:21.5708064Z             {
2026-06-19T05:17:21.5708185Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:17:21.5708276Z               "line": 20
2026-06-19T05:17:21.5708370Z             }
2026-06-19T05:17:21.5708452Z           ]
2026-06-19T05:17:21.5708533Z         },
2026-06-19T05:17:21.5708614Z         "int": {
2026-06-19T05:17:21.5708713Z           "complete": false,
2026-06-19T05:17:21.5708810Z           "evidence": []
2026-06-19T05:17:21.5708895Z         },
2026-06-19T05:17:21.5709057Z         "unit": {
2026-06-19T05:17:21.5709144Z           "complete": true,
2026-06-19T05:17:21.5709239Z           "evidence": [
2026-06-19T05:17:21.5709324Z             {
2026-06-19T05:17:21.5709445Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5709529Z               "line": 937
2026-06-19T05:17:21.5709610Z             },
2026-06-19T05:17:21.5709697Z             {
2026-06-19T05:17:21.5709825Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-19T05:17:21.5709915Z               "line": 88
2026-06-19T05:17:21.5709992Z             },
2026-06-19T05:17:21.5710074Z             {
2026-06-19T05:17:21.5710196Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5710286Z               "line": 851
2026-06-19T05:17:21.5710367Z             },
2026-06-19T05:17:21.5710454Z             {
2026-06-19T05:17:21.5710582Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5710663Z               "line": 870
2026-06-19T05:17:21.5710750Z             },
2026-06-19T05:17:21.5710831Z             {
2026-06-19T05:17:21.5710958Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.5711055Z               "line": 279
2026-06-19T05:17:21.5711131Z             },
2026-06-19T05:17:21.5711216Z             {
2026-06-19T05:17:21.5711341Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:17:21.5711422Z               "line": 82
2026-06-19T05:17:21.5711517Z             },
2026-06-19T05:17:21.5711592Z             {
2026-06-19T05:17:21.5711713Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:17:21.5711793Z               "line": 99
2026-06-19T05:17:21.5711874Z             },
2026-06-19T05:17:21.5712075Z             {
2026-06-19T05:17:21.5712184Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:17:21.5712280Z               "line": 119
2026-06-19T05:17:21.5712361Z             }
2026-06-19T05:17:21.5712446Z           ]
2026-06-19T05:17:21.5712536Z         }
2026-06-19T05:17:21.5712622Z       }
2026-06-19T05:17:21.5712707Z     },
2026-06-19T05:17:21.5712787Z     {
2026-06-19T05:17:21.5712915Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-19T05:17:21.5714188Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-19T05:17:21.5716960Z       "requiredStages": [
2026-06-19T05:17:21.5717070Z         "doc",
2026-06-19T05:17:21.5717156Z         "impl",
2026-06-19T05:17:21.5717245Z         "unit"
2026-06-19T05:17:21.5717332Z       ],
2026-06-19T05:17:21.5717419Z       "stages": {
2026-06-19T05:17:21.5717509Z         "doc": {
2026-06-19T05:17:21.5717604Z           "complete": true,
2026-06-19T05:17:21.5717700Z           "evidence": [
2026-06-19T05:17:21.5717786Z             {
2026-06-19T05:17:21.5717903Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5717998Z               "line": 157
2026-06-19T05:17:21.5718089Z             }
2026-06-19T05:17:21.5718178Z           ]
2026-06-19T05:17:21.5718258Z         },
2026-06-19T05:17:21.5718349Z         "impl": {
2026-06-19T05:17:21.5718445Z           "complete": true,
2026-06-19T05:17:21.5718539Z           "evidence": [
2026-06-19T05:17:21.5718625Z             {
2026-06-19T05:17:21.5718769Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.5718864Z               "line": 137
2026-06-19T05:17:21.5719065Z             },
2026-06-19T05:17:21.5719164Z             {
2026-06-19T05:17:21.5719303Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5719403Z               "line": 564
2026-06-19T05:17:21.5719489Z             },
2026-06-19T05:17:21.5719574Z             {
2026-06-19T05:17:21.5719709Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5719799Z               "line": 571
2026-06-19T05:17:21.5719889Z             },
2026-06-19T05:17:21.5719966Z             {
2026-06-19T05:17:21.5720099Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5720180Z               "line": 227
2026-06-19T05:17:21.5720262Z             }
2026-06-19T05:17:21.5720339Z           ]
2026-06-19T05:17:21.5720418Z         },
2026-06-19T05:17:21.5720509Z         "int": {
2026-06-19T05:17:21.5720600Z           "complete": false,
2026-06-19T05:17:21.5720686Z           "evidence": []
2026-06-19T05:17:21.5720770Z         },
2026-06-19T05:17:21.5720855Z         "unit": {
2026-06-19T05:17:21.5720957Z           "complete": true,
2026-06-19T05:17:21.5721052Z           "evidence": [
2026-06-19T05:17:21.5721137Z             {
2026-06-19T05:17:21.5721262Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5721352Z               "line": 1622
2026-06-19T05:17:21.5721437Z             },
2026-06-19T05:17:21.5721518Z             {
2026-06-19T05:17:21.5721648Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5721729Z               "line": 1680
2026-06-19T05:17:21.5721819Z             },
2026-06-19T05:17:21.5721901Z             {
2026-06-19T05:17:21.5722024Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5722105Z               "line": 883
2026-06-19T05:17:21.5722191Z             }
2026-06-19T05:17:21.5722273Z           ]
2026-06-19T05:17:21.5722358Z         }
2026-06-19T05:17:21.5722444Z       }
2026-06-19T05:17:21.5722521Z     },
2026-06-19T05:17:21.5722602Z     {
2026-06-19T05:17:21.5722860Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-19T05:17:21.5723053Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-19T05:17:21.5723153Z       "requiredStages": [
2026-06-19T05:17:21.5723234Z         "impl",
2026-06-19T05:17:21.5723314Z         "unit"
2026-06-19T05:17:21.5723399Z       ],
2026-06-19T05:17:21.5723480Z       "stages": {
2026-06-19T05:17:21.5723562Z         "doc": {
2026-06-19T05:17:21.5723661Z           "complete": false,
2026-06-19T05:17:21.5723852Z           "evidence": []
2026-06-19T05:17:21.5723928Z         },
2026-06-19T05:17:21.5724014Z         "impl": {
2026-06-19T05:17:21.5724104Z           "complete": true,
2026-06-19T05:17:21.5724201Z           "evidence": [
2026-06-19T05:17:21.5724281Z             {
2026-06-19T05:17:21.5724400Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5724496Z               "line": 15
2026-06-19T05:17:21.5724581Z             },
2026-06-19T05:17:21.5724662Z             {
2026-06-19T05:17:21.5724778Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5724872Z               "line": 55
2026-06-19T05:17:21.5724958Z             },
2026-06-19T05:17:21.5725044Z             {
2026-06-19T05:17:21.5725159Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5725239Z               "line": 66
2026-06-19T05:17:21.5725320Z             },
2026-06-19T05:17:21.5725403Z             {
2026-06-19T05:17:21.5725512Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5725607Z               "line": 115
2026-06-19T05:17:21.5725688Z             },
2026-06-19T05:17:21.5725775Z             {
2026-06-19T05:17:21.5725883Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5725977Z               "line": 138
2026-06-19T05:17:21.5726064Z             }
2026-06-19T05:17:21.5726148Z           ]
2026-06-19T05:17:21.5726237Z         },
2026-06-19T05:17:21.5726323Z         "int": {
2026-06-19T05:17:21.5726419Z           "complete": false,
2026-06-19T05:17:21.5726501Z           "evidence": []
2026-06-19T05:17:21.5726585Z         },
2026-06-19T05:17:21.5726671Z         "unit": {
2026-06-19T05:17:21.5726768Z           "complete": true,
2026-06-19T05:17:21.5726848Z           "evidence": [
2026-06-19T05:17:21.5726928Z             {
2026-06-19T05:17:21.5727034Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5727124Z               "line": 363
2026-06-19T05:17:21.5727210Z             },
2026-06-19T05:17:21.5727286Z             {
2026-06-19T05:17:21.5727402Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5727482Z               "line": 369
2026-06-19T05:17:21.5727567Z             },
2026-06-19T05:17:21.5727645Z             {
2026-06-19T05:17:21.5727759Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5727840Z               "line": 383
2026-06-19T05:17:21.5727921Z             },
2026-06-19T05:17:21.5728003Z             {
2026-06-19T05:17:21.5728120Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5728202Z               "line": 392
2026-06-19T05:17:21.5728284Z             },
2026-06-19T05:17:21.5728365Z             {
2026-06-19T05:17:21.5728477Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5728567Z               "line": 195
2026-06-19T05:17:21.5728644Z             },
2026-06-19T05:17:21.5728724Z             {
2026-06-19T05:17:21.5728832Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5728928Z               "line": 208
2026-06-19T05:17:21.5729090Z             },
2026-06-19T05:17:21.5729171Z             {
2026-06-19T05:17:21.5729287Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5729362Z               "line": 271
2026-06-19T05:17:21.5729447Z             },
2026-06-19T05:17:21.5729523Z             {
2026-06-19T05:17:21.5729644Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5729730Z               "line": 290
2026-06-19T05:17:21.5729916Z             },
2026-06-19T05:17:21.5729996Z             {
2026-06-19T05:17:21.5730115Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.5730192Z               "line": 319
2026-06-19T05:17:21.5730278Z             }
2026-06-19T05:17:21.5730354Z           ]
2026-06-19T05:17:21.5730439Z         }
2026-06-19T05:17:21.5730531Z       }
2026-06-19T05:17:21.5730612Z     },
2026-06-19T05:17:21.5730692Z     {
2026-06-19T05:17:21.5730812Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-19T05:17:21.5731161Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-19T05:17:21.5731260Z       "requiredStages": [
2026-06-19T05:17:21.5731345Z         "impl",
2026-06-19T05:17:21.5731430Z         "unit",
2026-06-19T05:17:21.5731512Z         "int"
2026-06-19T05:17:21.5731589Z       ],
2026-06-19T05:17:21.5731683Z       "stages": {
2026-06-19T05:17:21.5731754Z         "doc": {
2026-06-19T05:17:21.5731860Z           "complete": false,
2026-06-19T05:17:21.5731955Z           "evidence": []
2026-06-19T05:17:21.5732045Z         },
2026-06-19T05:17:21.5732137Z         "impl": {
2026-06-19T05:17:21.5732227Z           "complete": true,
2026-06-19T05:17:21.5732312Z           "evidence": [
2026-06-19T05:17:21.5732398Z             {
2026-06-19T05:17:21.5732518Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5732594Z               "line": 448
2026-06-19T05:17:21.5732679Z             },
2026-06-19T05:17:21.5732766Z             {
2026-06-19T05:17:21.5732875Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5732961Z               "line": 868
2026-06-19T05:17:21.5733042Z             },
2026-06-19T05:17:21.5733129Z             {
2026-06-19T05:17:21.5733242Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5733328Z               "line": 913
2026-06-19T05:17:21.5733410Z             },
2026-06-19T05:17:21.5733491Z             {
2026-06-19T05:17:21.5733599Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.5733680Z               "line": 938
2026-06-19T05:17:21.5733766Z             },
2026-06-19T05:17:21.5733846Z             {
2026-06-19T05:17:21.5733968Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5734045Z               "line": 1006
2026-06-19T05:17:21.5734132Z             },
2026-06-19T05:17:21.5734217Z             {
2026-06-19T05:17:21.5734326Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5734412Z               "line": 1188
2026-06-19T05:17:21.5734493Z             },
2026-06-19T05:17:21.5734579Z             {
2026-06-19T05:17:21.5734689Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5734770Z               "line": 1319
2026-06-19T05:17:21.5734855Z             },
2026-06-19T05:17:21.5734926Z             {
2026-06-19T05:17:21.5735042Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5735128Z               "line": 1367
2026-06-19T05:17:21.5735213Z             },
2026-06-19T05:17:21.5735299Z             {
2026-06-19T05:17:21.5735404Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:17:21.5735495Z               "line": 46
2026-06-19T05:17:21.5735575Z             },
2026-06-19T05:17:21.5735668Z             {
2026-06-19T05:17:21.5735771Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:17:21.5735866Z               "line": 167
2026-06-19T05:17:21.5735953Z             },
2026-06-19T05:17:21.5736039Z             {
2026-06-19T05:17:21.5736147Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.5736234Z               "line": 132
2026-06-19T05:17:21.5736321Z             },
2026-06-19T05:17:21.5736401Z             {
2026-06-19T05:17:21.5736523Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5736619Z               "line": 137
2026-06-19T05:17:21.5736694Z             },
2026-06-19T05:17:21.5736784Z             {
2026-06-19T05:17:21.5736969Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5737070Z               "line": 183
2026-06-19T05:17:21.5737159Z             }
2026-06-19T05:17:21.5737241Z           ]
2026-06-19T05:17:21.5737328Z         },
2026-06-19T05:17:21.5737418Z         "int": {
2026-06-19T05:17:21.5737512Z           "complete": true,
2026-06-19T05:17:21.5737599Z           "evidence": [
2026-06-19T05:17:21.5737685Z             {
2026-06-19T05:17:21.5737817Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-19T05:17:21.5737981Z               "line": 27
2026-06-19T05:17:21.5738057Z             },
2026-06-19T05:17:21.5738142Z             {
2026-06-19T05:17:21.5738262Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:17:21.5738342Z               "line": 148
2026-06-19T05:17:21.5738433Z             },
2026-06-19T05:17:21.5738515Z             {
2026-06-19T05:17:21.5738639Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-19T05:17:21.5738734Z               "line": 200
2026-06-19T05:17:21.5738806Z             }
2026-06-19T05:17:21.5738892Z           ]
2026-06-19T05:17:21.5739028Z         },
2026-06-19T05:17:21.5739109Z         "unit": {
2026-06-19T05:17:21.5739204Z           "complete": true,
2026-06-19T05:17:21.5739289Z           "evidence": [
2026-06-19T05:17:21.5739369Z             {
2026-06-19T05:17:21.5739479Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:17:21.5739570Z               "line": 313
2026-06-19T05:17:21.5739660Z             },
2026-06-19T05:17:21.5739741Z             {
2026-06-19T05:17:21.5739856Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:17:21.5739937Z               "line": 345
2026-06-19T05:17:21.5740031Z             },
2026-06-19T05:17:21.5740113Z             {
2026-06-19T05:17:21.5740227Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:17:21.5740309Z               "line": 366
2026-06-19T05:17:21.5740394Z             },
2026-06-19T05:17:21.5740476Z             {
2026-06-19T05:17:21.5740604Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.5740690Z               "line": 625
2026-06-19T05:17:21.5740772Z             },
2026-06-19T05:17:21.5740853Z             {
2026-06-19T05:17:21.5740976Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:17:21.5741062Z               "line": 289
2026-06-19T05:17:21.5741172Z             },
2026-06-19T05:17:21.5741277Z             {
2026-06-19T05:17:21.5741392Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-19T05:17:21.5741483Z               "line": 230
2026-06-19T05:17:21.5741566Z             },
2026-06-19T05:17:21.5741653Z             {
2026-06-19T05:17:21.5741769Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5741853Z               "line": 526
2026-06-19T05:17:21.5741933Z             },
2026-06-19T05:17:21.5742019Z             {
2026-06-19T05:17:21.5742125Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.5742224Z               "line": 556
2026-06-19T05:17:21.5742309Z             }
2026-06-19T05:17:21.5742391Z           ]
2026-06-19T05:17:21.5742482Z         }
2026-06-19T05:17:21.5742567Z       }
2026-06-19T05:17:21.5742648Z     },
2026-06-19T05:17:21.5742731Z     {
2026-06-19T05:17:21.5742882Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-19T05:17:21.5744561Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-19T05:17:21.5744672Z       "requiredStages": [
2026-06-19T05:17:21.5744876Z         "doc",
2026-06-19T05:17:21.5744958Z         "impl",
2026-06-19T05:17:21.5745039Z         "unit"
2026-06-19T05:17:21.5745120Z       ],
2026-06-19T05:17:21.5745205Z       "stages": {
2026-06-19T05:17:21.5745288Z         "doc": {
2026-06-19T05:17:21.5745368Z           "complete": true,
2026-06-19T05:17:21.5745458Z           "evidence": [
2026-06-19T05:17:21.5745540Z             {
2026-06-19T05:17:21.5745649Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5745730Z               "line": 314
2026-06-19T05:17:21.5745898Z             }
2026-06-19T05:17:21.5745988Z           ]
2026-06-19T05:17:21.5746073Z         },
2026-06-19T05:17:21.5746164Z         "impl": {
2026-06-19T05:17:21.5746256Z           "complete": true,
2026-06-19T05:17:21.5746345Z           "evidence": [
2026-06-19T05:17:21.5746422Z             {
2026-06-19T05:17:21.5746557Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-19T05:17:21.5746641Z               "line": 33
2026-06-19T05:17:21.5746732Z             },
2026-06-19T05:17:21.5746814Z             {
2026-06-19T05:17:21.5746942Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-19T05:17:21.5747031Z               "line": 39
2026-06-19T05:17:21.5747112Z             }
2026-06-19T05:17:21.5747193Z           ]
2026-06-19T05:17:21.5747278Z         },
2026-06-19T05:17:21.5747363Z         "int": {
2026-06-19T05:17:21.5747458Z           "complete": false,
2026-06-19T05:17:21.5747534Z           "evidence": []
2026-06-19T05:17:21.5747621Z         },
2026-06-19T05:17:21.5747705Z         "unit": {
2026-06-19T05:17:21.5747796Z           "complete": true,
2026-06-19T05:17:21.5747888Z           "evidence": [
2026-06-19T05:17:21.5747964Z             {
2026-06-19T05:17:21.5748092Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-19T05:17:21.5748169Z               "line": 95
2026-06-19T05:17:21.5748254Z             }
2026-06-19T05:17:21.5748340Z           ]
2026-06-19T05:17:21.5748421Z         }
2026-06-19T05:17:21.5748507Z       }
2026-06-19T05:17:21.5748588Z     },
2026-06-19T05:17:21.5748674Z     {
2026-06-19T05:17:21.5748775Z       "id": "REQ-HAZARD-ROSTER-GHOST",
2026-06-19T05:17:21.5751230Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
2026-06-19T05:17:21.5751341Z       "requiredStages": [
2026-06-19T05:17:21.5751432Z         "impl",
2026-06-19T05:17:21.5751517Z         "unit"
2026-06-19T05:17:21.5751603Z       ],
2026-06-19T05:17:21.5751680Z       "stages": {
2026-06-19T05:17:21.5751770Z         "doc": {
2026-06-19T05:17:21.5751865Z           "complete": false,
2026-06-19T05:17:21.5751957Z           "evidence": []
2026-06-19T05:17:21.5752043Z         },
2026-06-19T05:17:21.5752127Z         "impl": {
2026-06-19T05:17:21.5752223Z           "complete": true,
2026-06-19T05:17:21.5752314Z           "evidence": [
2026-06-19T05:17:21.5752400Z             {
2026-06-19T05:17:21.5752531Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5752617Z               "line": 488
2026-06-19T05:17:21.5752704Z             }
2026-06-19T05:17:21.5752789Z           ]
2026-06-19T05:17:21.5752875Z         },
2026-06-19T05:17:21.5752961Z         "int": {
2026-06-19T05:17:21.5753057Z           "complete": false,
2026-06-19T05:17:21.5753252Z           "evidence": []
2026-06-19T05:17:21.5753342Z         },
2026-06-19T05:17:21.5753423Z         "unit": {
2026-06-19T05:17:21.5753518Z           "complete": true,
2026-06-19T05:17:21.5753601Z           "evidence": [
2026-06-19T05:17:21.5753686Z             {
2026-06-19T05:17:21.5753809Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5753896Z               "line": 1466
2026-06-19T05:17:21.5753986Z             }
2026-06-19T05:17:21.5754067Z           ]
2026-06-19T05:17:21.5754240Z         }
2026-06-19T05:17:21.5754329Z       }
2026-06-19T05:17:21.5754410Z     },
2026-06-19T05:17:21.5754491Z     {
2026-06-19T05:17:21.5754598Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-19T05:17:21.5756729Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-19T05:17:21.5756839Z       "requiredStages": [
2026-06-19T05:17:21.5756924Z         "unit"
2026-06-19T05:17:21.5757015Z       ],
2026-06-19T05:17:21.5757097Z       "stages": {
2026-06-19T05:17:21.5757182Z         "doc": {
2026-06-19T05:17:21.5757272Z           "complete": false,
2026-06-19T05:17:21.5757354Z           "evidence": []
2026-06-19T05:17:21.5757446Z         },
2026-06-19T05:17:21.5757530Z         "impl": {
2026-06-19T05:17:21.5757629Z           "complete": true,
2026-06-19T05:17:21.5757710Z           "evidence": [
2026-06-19T05:17:21.5757800Z             {
2026-06-19T05:17:21.5757908Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5757993Z               "line": 3396
2026-06-19T05:17:21.5758080Z             },
2026-06-19T05:17:21.5758162Z             {
2026-06-19T05:17:21.5758266Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5758352Z               "line": 3448
2026-06-19T05:17:21.5758438Z             },
2026-06-19T05:17:21.5758519Z             {
2026-06-19T05:17:21.5758613Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5758711Z               "line": 3493
2026-06-19T05:17:21.5758791Z             },
2026-06-19T05:17:21.5758876Z             {
2026-06-19T05:17:21.5759063Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5759158Z               "line": 92
2026-06-19T05:17:21.5759239Z             },
2026-06-19T05:17:21.5759320Z             {
2026-06-19T05:17:21.5759425Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5759515Z               "line": 148
2026-06-19T05:17:21.5759611Z             },
2026-06-19T05:17:21.5759693Z             {
2026-06-19T05:17:21.5759801Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5759892Z               "line": 192
2026-06-19T05:17:21.5759974Z             },
2026-06-19T05:17:21.5760060Z             {
2026-06-19T05:17:21.5760167Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5760262Z               "line": 200
2026-06-19T05:17:21.5760348Z             },
2026-06-19T05:17:21.5760423Z             {
2026-06-19T05:17:21.5760541Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5760628Z               "line": 211
2026-06-19T05:17:21.5760709Z             },
2026-06-19T05:17:21.5760795Z             {
2026-06-19T05:17:21.5760913Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5761000Z               "line": 265
2026-06-19T05:17:21.5761086Z             },
2026-06-19T05:17:21.5761170Z             {
2026-06-19T05:17:21.5761391Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5761480Z               "line": 279
2026-06-19T05:17:21.5761563Z             }
2026-06-19T05:17:21.5761648Z           ]
2026-06-19T05:17:21.5761734Z         },
2026-06-19T05:17:21.5761819Z         "int": {
2026-06-19T05:17:21.5761916Z           "complete": false,
2026-06-19T05:17:21.5761997Z           "evidence": []
2026-06-19T05:17:21.5762087Z         },
2026-06-19T05:17:21.5762173Z         "unit": {
2026-06-19T05:17:21.5762367Z           "complete": true,
2026-06-19T05:17:21.5762458Z           "evidence": [
2026-06-19T05:17:21.5762536Z             {
2026-06-19T05:17:21.5762645Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5762736Z               "line": 419
2026-06-19T05:17:21.5762822Z             },
2026-06-19T05:17:21.5762898Z             {
2026-06-19T05:17:21.5763011Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5763106Z               "line": 470
2026-06-19T05:17:21.5763187Z             },
2026-06-19T05:17:21.5763279Z             {
2026-06-19T05:17:21.5763377Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5763468Z               "line": 499
2026-06-19T05:17:21.5763551Z             },
2026-06-19T05:17:21.5763636Z             {
2026-06-19T05:17:21.5763749Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5763832Z               "line": 526
2026-06-19T05:17:21.5763912Z             }
2026-06-19T05:17:21.5763993Z           ]
2026-06-19T05:17:21.5764079Z         }
2026-06-19T05:17:21.5764161Z       }
2026-06-19T05:17:21.5764241Z     },
2026-06-19T05:17:21.5764331Z     {
2026-06-19T05:17:21.5764437Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-19T05:17:21.5764623Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-19T05:17:21.5764708Z       "requiredStages": [
2026-06-19T05:17:21.5764790Z         "impl",
2026-06-19T05:17:21.5764875Z         "unit"
2026-06-19T05:17:21.5764966Z       ],
2026-06-19T05:17:21.5765056Z       "stages": {
2026-06-19T05:17:21.5765139Z         "doc": {
2026-06-19T05:17:21.5765228Z           "complete": false,
2026-06-19T05:17:21.5765313Z           "evidence": []
2026-06-19T05:17:21.5765394Z         },
2026-06-19T05:17:21.5765480Z         "impl": {
2026-06-19T05:17:21.5765573Z           "complete": true,
2026-06-19T05:17:21.5765663Z           "evidence": [
2026-06-19T05:17:21.5765744Z             {
2026-06-19T05:17:21.5765869Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5765963Z               "line": 62
2026-06-19T05:17:21.5766054Z             },
2026-06-19T05:17:21.5766131Z             {
2026-06-19T05:17:21.5766254Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5766345Z               "line": 71
2026-06-19T05:17:21.5766418Z             },
2026-06-19T05:17:21.5766503Z             {
2026-06-19T05:17:21.5766631Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5766728Z               "line": 80
2026-06-19T05:17:21.5766817Z             },
2026-06-19T05:17:21.5766902Z             {
2026-06-19T05:17:21.5767023Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5767103Z               "line": 88
2026-06-19T05:17:21.5767194Z             },
2026-06-19T05:17:21.5767270Z             {
2026-06-19T05:17:21.5767391Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5767479Z               "line": 33
2026-06-19T05:17:21.5767566Z             },
2026-06-19T05:17:21.5767653Z             {
2026-06-19T05:17:21.5767770Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5767857Z               "line": 65
2026-06-19T05:17:21.5767939Z             },
2026-06-19T05:17:21.5768025Z             {
2026-06-19T05:17:21.5768137Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5768217Z               "line": 74
2026-06-19T05:17:21.5768304Z             },
2026-06-19T05:17:21.5768393Z             {
2026-06-19T05:17:21.5768684Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5768773Z               "line": 93
2026-06-19T05:17:21.5768854Z             },
2026-06-19T05:17:21.5768936Z             {
2026-06-19T05:17:21.5769126Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5769212Z               "line": 102
2026-06-19T05:17:21.5769294Z             },
2026-06-19T05:17:21.5769380Z             {
2026-06-19T05:17:21.5769489Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5769699Z               "line": 111
2026-06-19T05:17:21.5769784Z             },
2026-06-19T05:17:21.5769861Z             {
2026-06-19T05:17:21.5769966Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5770051Z               "line": 122
2026-06-19T05:17:21.5770133Z             },
2026-06-19T05:17:21.5770220Z             {
2026-06-19T05:17:21.5770351Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5770448Z               "line": 140
2026-06-19T05:17:21.5770529Z             },
2026-06-19T05:17:21.5770624Z             {
2026-06-19T05:17:21.5770742Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5770837Z               "line": 149
2026-06-19T05:17:21.5770918Z             },
2026-06-19T05:17:21.5771007Z             {
2026-06-19T05:17:21.5771120Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5771207Z               "line": 158
2026-06-19T05:17:21.5771298Z             },
2026-06-19T05:17:21.5771378Z             {
2026-06-19T05:17:21.5771488Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5771575Z               "line": 169
2026-06-19T05:17:21.5771660Z             },
2026-06-19T05:17:21.5771745Z             {
2026-06-19T05:17:21.5771851Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5771946Z               "line": 177
2026-06-19T05:17:21.5772032Z             },
2026-06-19T05:17:21.5772118Z             {
2026-06-19T05:17:21.5772223Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5772323Z               "line": 186
2026-06-19T05:17:21.5772418Z             },
2026-06-19T05:17:21.5772500Z             {
2026-06-19T05:17:21.5772614Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5772709Z               "line": 195
2026-06-19T05:17:21.5772787Z             },
2026-06-19T05:17:21.5772876Z             {
2026-06-19T05:17:21.5772985Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5773092Z               "line": 204
2026-06-19T05:17:21.5773177Z             },
2026-06-19T05:17:21.5773261Z             {
2026-06-19T05:17:21.5773372Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5773463Z               "line": 216
2026-06-19T05:17:21.5773543Z             },
2026-06-19T05:17:21.5773633Z             {
2026-06-19T05:17:21.5773743Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5773824Z               "line": 223
2026-06-19T05:17:21.5773910Z             },
2026-06-19T05:17:21.5773990Z             {
2026-06-19T05:17:21.5774120Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5774215Z               "line": 232
2026-06-19T05:17:21.5774295Z             },
2026-06-19T05:17:21.5774373Z             {
2026-06-19T05:17:21.5774482Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5774581Z               "line": 239
2026-06-19T05:17:21.5774667Z             },
2026-06-19T05:17:21.5774754Z             {
2026-06-19T05:17:21.5774873Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5774949Z               "line": 306
2026-06-19T05:17:21.5775045Z             },
2026-06-19T05:17:21.5775135Z             {
2026-06-19T05:17:21.5775244Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5775336Z               "line": 318
2026-06-19T05:17:21.5775427Z             },
2026-06-19T05:17:21.5775511Z             {
2026-06-19T05:17:21.5775722Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5775821Z               "line": 405
2026-06-19T05:17:21.5775906Z             }
2026-06-19T05:17:21.5775997Z           ]
2026-06-19T05:17:21.5776082Z         },
2026-06-19T05:17:21.5776171Z         "int": {
2026-06-19T05:17:21.5776271Z           "complete": false,
2026-06-19T05:17:21.5776362Z           "evidence": []
2026-06-19T05:17:21.5776448Z         },
2026-06-19T05:17:21.5776528Z         "unit": {
2026-06-19T05:17:21.5776629Z           "complete": true,
2026-06-19T05:17:21.5776786Z           "evidence": [
2026-06-19T05:17:21.5776867Z             {
2026-06-19T05:17:21.5776997Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5777082Z               "line": 487
2026-06-19T05:17:21.5777167Z             },
2026-06-19T05:17:21.5777249Z             {
2026-06-19T05:17:21.5777358Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5777444Z               "line": 528
2026-06-19T05:17:21.5777539Z             },
2026-06-19T05:17:21.5777631Z             {
2026-06-19T05:17:21.5777736Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5777821Z               "line": 541
2026-06-19T05:17:21.5777898Z             },
2026-06-19T05:17:21.5777979Z             {
2026-06-19T05:17:21.5778092Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5778189Z               "line": 627
2026-06-19T05:17:21.5778265Z             }
2026-06-19T05:17:21.5778349Z           ]
2026-06-19T05:17:21.5778436Z         }
2026-06-19T05:17:21.5778518Z       }
2026-06-19T05:17:21.5778604Z     },
2026-06-19T05:17:21.5778683Z     {
2026-06-19T05:17:21.5778782Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-19T05:17:21.5779052Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-19T05:17:21.5779148Z       "requiredStages": [
2026-06-19T05:17:21.5779234Z         "impl",
2026-06-19T05:17:21.5779320Z         "unit"
2026-06-19T05:17:21.5779405Z       ],
2026-06-19T05:17:21.5779491Z       "stages": {
2026-06-19T05:17:21.5779577Z         "doc": {
2026-06-19T05:17:21.5779681Z           "complete": false,
2026-06-19T05:17:21.5779772Z           "evidence": []
2026-06-19T05:17:21.5779859Z         },
2026-06-19T05:17:21.5779940Z         "impl": {
2026-06-19T05:17:21.5780039Z           "complete": true,
2026-06-19T05:17:21.5780116Z           "evidence": [
2026-06-19T05:17:21.5780207Z             {
2026-06-19T05:17:21.5780325Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.5780406Z               "line": 173
2026-06-19T05:17:21.5780484Z             },
2026-06-19T05:17:21.5780568Z             {
2026-06-19T05:17:21.5780698Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5780780Z               "line": 167
2026-06-19T05:17:21.5780869Z             }
2026-06-19T05:17:21.5780950Z           ]
2026-06-19T05:17:21.5781031Z         },
2026-06-19T05:17:21.5781114Z         "int": {
2026-06-19T05:17:21.5781212Z           "complete": false,
2026-06-19T05:17:21.5781316Z           "evidence": []
2026-06-19T05:17:21.5781402Z         },
2026-06-19T05:17:21.5781492Z         "unit": {
2026-06-19T05:17:21.5781591Z           "complete": true,
2026-06-19T05:17:21.5781671Z           "evidence": [
2026-06-19T05:17:21.5781753Z             {
2026-06-19T05:17:21.5781868Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.5781967Z               "line": 295
2026-06-19T05:17:21.5782039Z             },
2026-06-19T05:17:21.5782135Z             {
2026-06-19T05:17:21.5782258Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5782349Z               "line": 832
2026-06-19T05:17:21.5782425Z             },
2026-06-19T05:17:21.5782511Z             {
2026-06-19T05:17:21.5782634Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.5782722Z               "line": 845
2026-06-19T05:17:21.5782811Z             }
2026-06-19T05:17:21.5782901Z           ]
2026-06-19T05:17:21.5782988Z         }
2026-06-19T05:17:21.5783183Z       }
2026-06-19T05:17:21.5783269Z     },
2026-06-19T05:17:21.5783347Z     {
2026-06-19T05:17:21.5783464Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-19T05:17:21.5783603Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-19T05:17:21.5783699Z       "requiredStages": [
2026-06-19T05:17:21.5783783Z         "impl",
2026-06-19T05:17:21.5783875Z         "unit"
2026-06-19T05:17:21.5783961Z       ],
2026-06-19T05:17:21.5784042Z       "stages": {
2026-06-19T05:17:21.5784216Z         "doc": {
2026-06-19T05:17:21.5784317Z           "complete": false,
2026-06-19T05:17:21.5784418Z           "evidence": []
2026-06-19T05:17:21.5784503Z         },
2026-06-19T05:17:21.5784593Z         "impl": {
2026-06-19T05:17:21.5784690Z           "complete": true,
2026-06-19T05:17:21.5784780Z           "evidence": [
2026-06-19T05:17:21.5784865Z             {
2026-06-19T05:17:21.5784985Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5787604Z               "line": 116
2026-06-19T05:17:21.5787722Z             },
2026-06-19T05:17:21.5787810Z             {
2026-06-19T05:17:21.5787947Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.5788037Z               "line": 507
2026-06-19T05:17:21.5788124Z             }
2026-06-19T05:17:21.5788201Z           ]
2026-06-19T05:17:21.5788291Z         },
2026-06-19T05:17:21.5788376Z         "int": {
2026-06-19T05:17:21.5788472Z           "complete": false,
2026-06-19T05:17:21.5788562Z           "evidence": []
2026-06-19T05:17:21.5788653Z         },
2026-06-19T05:17:21.5788739Z         "unit": {
2026-06-19T05:17:21.5788825Z           "complete": true,
2026-06-19T05:17:21.5788914Z           "evidence": [
2026-06-19T05:17:21.5789073Z             {
2026-06-19T05:17:21.5789211Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.5789300Z               "line": 541
2026-06-19T05:17:21.5789386Z             }
2026-06-19T05:17:21.5789467Z           ]
2026-06-19T05:17:21.5789547Z         }
2026-06-19T05:17:21.5789631Z       }
2026-06-19T05:17:21.5789708Z     },
2026-06-19T05:17:21.5789790Z     {
2026-06-19T05:17:21.5789903Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-19T05:17:21.5790071Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-19T05:17:21.5790156Z       "requiredStages": [
2026-06-19T05:17:21.5790241Z         "impl",
2026-06-19T05:17:21.5790327Z         "unit"
2026-06-19T05:17:21.5790410Z       ],
2026-06-19T05:17:21.5790490Z       "stages": {
2026-06-19T05:17:21.5790575Z         "doc": {
2026-06-19T05:17:21.5790671Z           "complete": false,
2026-06-19T05:17:21.5790753Z           "evidence": []
2026-06-19T05:17:21.5790833Z         },
2026-06-19T05:17:21.5790914Z         "impl": {
2026-06-19T05:17:21.5791006Z           "complete": true,
2026-06-19T05:17:21.5791101Z           "evidence": [
2026-06-19T05:17:21.5791181Z             {
2026-06-19T05:17:21.5791335Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5791425Z               "line": 552
2026-06-19T05:17:21.5791505Z             },
2026-06-19T05:17:21.5791587Z             {
2026-06-19T05:17:21.5791712Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5791800Z               "line": 28
2026-06-19T05:17:21.5791886Z             }
2026-06-19T05:17:21.5791971Z           ]
2026-06-19T05:17:21.5792052Z         },
2026-06-19T05:17:21.5792136Z         "int": {
2026-06-19T05:17:21.5792236Z           "complete": false,
2026-06-19T05:17:21.5792332Z           "evidence": []
2026-06-19T05:17:21.5792423Z         },
2026-06-19T05:17:21.5792508Z         "unit": {
2026-06-19T05:17:21.5792594Z           "complete": true,
2026-06-19T05:17:21.5792676Z           "evidence": [
2026-06-19T05:17:21.5792761Z             {
2026-06-19T05:17:21.5792884Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5792967Z               "line": 229
2026-06-19T05:17:21.5793047Z             }
2026-06-19T05:17:21.5793132Z           ]
2026-06-19T05:17:21.5793343Z         }
2026-06-19T05:17:21.5793429Z       }
2026-06-19T05:17:21.5793514Z     },
2026-06-19T05:17:21.5793597Z     {
2026-06-19T05:17:21.5793700Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-19T05:17:21.5793829Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-19T05:17:21.5793931Z       "requiredStages": [],
2026-06-19T05:17:21.5794020Z       "stages": {
2026-06-19T05:17:21.5794105Z         "doc": {
2026-06-19T05:17:21.5794202Z           "complete": false,
2026-06-19T05:17:21.5794387Z           "evidence": []
2026-06-19T05:17:21.5794468Z         },
2026-06-19T05:17:21.5794555Z         "impl": {
2026-06-19T05:17:21.5794635Z           "complete": false,
2026-06-19T05:17:21.5794720Z           "evidence": []
2026-06-19T05:17:21.5794795Z         },
2026-06-19T05:17:21.5794887Z         "int": {
2026-06-19T05:17:21.5794973Z           "complete": false,
2026-06-19T05:17:21.5795058Z           "evidence": []
2026-06-19T05:17:21.5795144Z         },
2026-06-19T05:17:21.5795235Z         "unit": {
2026-06-19T05:17:21.5795326Z           "complete": false,
2026-06-19T05:17:21.5795406Z           "evidence": []
2026-06-19T05:17:21.5795488Z         }
2026-06-19T05:17:21.5795578Z       }
2026-06-19T05:17:21.5795659Z     },
2026-06-19T05:17:21.5795739Z     {
2026-06-19T05:17:21.5795850Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-19T05:17:21.5795998Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-19T05:17:21.5796088Z       "requiredStages": [
2026-06-19T05:17:21.5796180Z         "impl",
2026-06-19T05:17:21.5796270Z         "unit"
2026-06-19T05:17:21.5796355Z       ],
2026-06-19T05:17:21.5796442Z       "stages": {
2026-06-19T05:17:21.5796527Z         "doc": {
2026-06-19T05:17:21.5796622Z           "complete": false,
2026-06-19T05:17:21.5796708Z           "evidence": []
2026-06-19T05:17:21.5796791Z         },
2026-06-19T05:17:21.5796871Z         "impl": {
2026-06-19T05:17:21.5796960Z           "complete": true,
2026-06-19T05:17:21.5797045Z           "evidence": [
2026-06-19T05:17:21.5797131Z             {
2026-06-19T05:17:21.5797249Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:17:21.5797324Z               "line": 19
2026-06-19T05:17:21.5797406Z             },
2026-06-19T05:17:21.5797502Z             {
2026-06-19T05:17:21.5797624Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5797715Z               "line": 463
2026-06-19T05:17:21.5797802Z             },
2026-06-19T05:17:21.5797883Z             {
2026-06-19T05:17:21.5798001Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5798098Z               "line": 499
2026-06-19T05:17:21.5798178Z             },
2026-06-19T05:17:21.5798259Z             {
2026-06-19T05:17:21.5798379Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5798460Z               "line": 547
2026-06-19T05:17:21.5798545Z             },
2026-06-19T05:17:21.5798626Z             {
2026-06-19T05:17:21.5798746Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5798841Z               "line": 15
2026-06-19T05:17:21.5798921Z             },
2026-06-19T05:17:21.5799090Z             {
2026-06-19T05:17:21.5799204Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5799299Z               "line": 48
2026-06-19T05:17:21.5799381Z             },
2026-06-19T05:17:21.5799465Z             {
2026-06-19T05:17:21.5799580Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5799667Z               "line": 119
2026-06-19T05:17:21.5799757Z             },
2026-06-19T05:17:21.5799832Z             {
2026-06-19T05:17:21.5799936Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5800032Z               "line": 3824
2026-06-19T05:17:21.5800111Z             }
2026-06-19T05:17:21.5800191Z           ]
2026-06-19T05:17:21.5800273Z         },
2026-06-19T05:17:21.5800360Z         "int": {
2026-06-19T05:17:21.5800440Z           "complete": false,
2026-06-19T05:17:21.5800530Z           "evidence": []
2026-06-19T05:17:21.5800716Z         },
2026-06-19T05:17:21.5800802Z         "unit": {
2026-06-19T05:17:21.5800897Z           "complete": true,
2026-06-19T05:17:21.5800984Z           "evidence": [
2026-06-19T05:17:21.5801075Z             {
2026-06-19T05:17:21.5801193Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5801299Z               "line": 765
2026-06-19T05:17:21.5801383Z             },
2026-06-19T05:17:21.5801464Z             {
2026-06-19T05:17:21.5801689Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5801770Z               "line": 165
2026-06-19T05:17:21.5801846Z             },
2026-06-19T05:17:21.5801924Z             {
2026-06-19T05:17:21.5802041Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:17:21.5802128Z               "line": 175
2026-06-19T05:17:21.5802215Z             }
2026-06-19T05:17:21.5802300Z           ]
2026-06-19T05:17:21.5802370Z         }
2026-06-19T05:17:21.5802455Z       }
2026-06-19T05:17:21.5802541Z     },
2026-06-19T05:17:21.5802622Z     {
2026-06-19T05:17:21.5802725Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-19T05:17:21.5803622Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-19T05:17:21.5803726Z       "requiredStages": [
2026-06-19T05:17:21.5803799Z         "impl",
2026-06-19T05:17:21.5803889Z         "unit"
2026-06-19T05:17:21.5803975Z       ],
2026-06-19T05:17:21.5804055Z       "stages": {
2026-06-19T05:17:21.5804147Z         "doc": {
2026-06-19T05:17:21.5804237Z           "complete": false,
2026-06-19T05:17:21.5804332Z           "evidence": []
2026-06-19T05:17:21.5804408Z         },
2026-06-19T05:17:21.5804495Z         "impl": {
2026-06-19T05:17:21.5804580Z           "complete": true,
2026-06-19T05:17:21.5804670Z           "evidence": [
2026-06-19T05:17:21.5804767Z             {
2026-06-19T05:17:21.5804885Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5804980Z               "line": 192
2026-06-19T05:17:21.5805068Z             },
2026-06-19T05:17:21.5805149Z             {
2026-06-19T05:17:21.5805256Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5805341Z               "line": 279
2026-06-19T05:17:21.5805418Z             }
2026-06-19T05:17:21.5805500Z           ]
2026-06-19T05:17:21.5805585Z         },
2026-06-19T05:17:21.5805670Z         "int": {
2026-06-19T05:17:21.5805757Z           "complete": false,
2026-06-19T05:17:21.5805843Z           "evidence": []
2026-06-19T05:17:21.5805928Z         },
2026-06-19T05:17:21.5806014Z         "unit": {
2026-06-19T05:17:21.5806101Z           "complete": true,
2026-06-19T05:17:21.5806186Z           "evidence": [
2026-06-19T05:17:21.5806267Z             {
2026-06-19T05:17:21.5806382Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5806463Z               "line": 470
2026-06-19T05:17:21.5806553Z             },
2026-06-19T05:17:21.5806643Z             {
2026-06-19T05:17:21.5806754Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.5806844Z               "line": 526
2026-06-19T05:17:21.5806930Z             }
2026-06-19T05:17:21.5807017Z           ]
2026-06-19T05:17:21.5807102Z         }
2026-06-19T05:17:21.5807187Z       }
2026-06-19T05:17:21.5807268Z     },
2026-06-19T05:17:21.5807346Z     {
2026-06-19T05:17:21.5807458Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
2026-06-19T05:17:21.5811258Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
2026-06-19T05:17:21.5811601Z       "requiredStages": [
2026-06-19T05:17:21.5811682Z         "impl",
2026-06-19T05:17:21.5811768Z         "unit",
2026-06-19T05:17:21.5811854Z         "int"
2026-06-19T05:17:21.5811934Z       ],
2026-06-19T05:17:21.5812015Z       "stages": {
2026-06-19T05:17:21.5812106Z         "doc": {
2026-06-19T05:17:21.5812197Z           "complete": false,
2026-06-19T05:17:21.5812286Z           "evidence": []
2026-06-19T05:17:21.5812368Z         },
2026-06-19T05:17:21.5812451Z         "impl": {
2026-06-19T05:17:21.5812536Z           "complete": true,
2026-06-19T05:17:21.5812620Z           "evidence": [
2026-06-19T05:17:21.5812707Z             {
2026-06-19T05:17:21.5812832Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5812921Z               "line": 95
2026-06-19T05:17:21.5813011Z             },
2026-06-19T05:17:21.5813087Z             {
2026-06-19T05:17:21.5813206Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.5813285Z               "line": 132
2026-06-19T05:17:21.5813366Z             },
2026-06-19T05:17:21.5813457Z             {
2026-06-19T05:17:21.5813581Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.5813671Z               "line": 434
2026-06-19T05:17:21.5813753Z             },
2026-06-19T05:17:21.5813838Z             {
2026-06-19T05:17:21.5813947Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5814034Z               "line": 139
2026-06-19T05:17:21.5814125Z             },
2026-06-19T05:17:21.5814206Z             {
2026-06-19T05:17:21.5814324Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5814411Z               "line": 326
2026-06-19T05:17:21.5814491Z             },
2026-06-19T05:17:21.5814577Z             {
2026-06-19T05:17:21.5814702Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5814797Z               "line": 555
2026-06-19T05:17:21.5814878Z             }
2026-06-19T05:17:21.5814959Z           ]
2026-06-19T05:17:21.5815041Z         },
2026-06-19T05:17:21.5815126Z         "int": {
2026-06-19T05:17:21.5815225Z           "complete": true,
2026-06-19T05:17:21.5815322Z           "evidence": [
2026-06-19T05:17:21.5815408Z             {
2026-06-19T05:17:21.5815550Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-19T05:17:21.5815642Z               "line": 32
2026-06-19T05:17:21.5815718Z             }
2026-06-19T05:17:21.5815802Z           ]
2026-06-19T05:17:21.5815883Z         },
2026-06-19T05:17:21.5815973Z         "unit": {
2026-06-19T05:17:21.5816070Z           "complete": true,
2026-06-19T05:17:21.5816164Z           "evidence": [
2026-06-19T05:17:21.5816259Z             {
2026-06-19T05:17:21.5816375Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5816464Z               "line": 625
2026-06-19T05:17:21.5816536Z             },
2026-06-19T05:17:21.5816628Z             {
2026-06-19T05:17:21.5816747Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5816831Z               "line": 646
2026-06-19T05:17:21.5816918Z             },
2026-06-19T05:17:21.5817061Z             {
2026-06-19T05:17:21.5817170Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5817262Z               "line": 662
2026-06-19T05:17:21.5817347Z             },
2026-06-19T05:17:21.5817433Z             {
2026-06-19T05:17:21.5817548Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5817634Z               "line": 680
2026-06-19T05:17:21.5817718Z             },
2026-06-19T05:17:21.5817800Z             {
2026-06-19T05:17:21.5817986Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5818066Z               "line": 704
2026-06-19T05:17:21.5818147Z             }
2026-06-19T05:17:21.5818233Z           ]
2026-06-19T05:17:21.5818317Z         }
2026-06-19T05:17:21.5818397Z       }
2026-06-19T05:17:21.5818482Z     },
2026-06-19T05:17:21.5818565Z     {
2026-06-19T05:17:21.5818670Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-19T05:17:21.5818826Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-19T05:17:21.5818913Z       "requiredStages": [
2026-06-19T05:17:21.5819074Z         "impl",
2026-06-19T05:17:21.5819155Z         "unit"
2026-06-19T05:17:21.5819242Z       ],
2026-06-19T05:17:21.5819327Z       "stages": {
2026-06-19T05:17:21.5819408Z         "doc": {
2026-06-19T05:17:21.5819500Z           "complete": false,
2026-06-19T05:17:21.5819594Z           "evidence": []
2026-06-19T05:17:21.5819665Z         },
2026-06-19T05:17:21.5819746Z         "impl": {
2026-06-19T05:17:21.5819848Z           "complete": true,
2026-06-19T05:17:21.5819928Z           "evidence": [
2026-06-19T05:17:21.5820018Z             {
2026-06-19T05:17:21.5820144Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5820214Z               "line": 35
2026-06-19T05:17:21.5820299Z             }
2026-06-19T05:17:21.5820380Z           ]
2026-06-19T05:17:21.5820463Z         },
2026-06-19T05:17:21.5820543Z         "int": {
2026-06-19T05:17:21.5820633Z           "complete": false,
2026-06-19T05:17:21.5820730Z           "evidence": []
2026-06-19T05:17:21.5820816Z         },
2026-06-19T05:17:21.5820896Z         "unit": {
2026-06-19T05:17:21.5820990Z           "complete": true,
2026-06-19T05:17:21.5821076Z           "evidence": [
2026-06-19T05:17:21.5821161Z             {
2026-06-19T05:17:21.5821265Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:17:21.5821354Z               "line": 220
2026-06-19T05:17:21.5821436Z             }
2026-06-19T05:17:21.5821522Z           ]
2026-06-19T05:17:21.5821603Z         }
2026-06-19T05:17:21.5821689Z       }
2026-06-19T05:17:21.5821770Z     },
2026-06-19T05:17:21.5821856Z     {
2026-06-19T05:17:21.5821974Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
2026-06-19T05:17:21.5825056Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
2026-06-19T05:17:21.5825171Z       "requiredStages": [
2026-06-19T05:17:21.5825258Z         "impl",
2026-06-19T05:17:21.5825343Z         "unit",
2026-06-19T05:17:21.5825429Z         "int"
2026-06-19T05:17:21.5825625Z       ],
2026-06-19T05:17:21.5825709Z       "stages": {
2026-06-19T05:17:21.5825800Z         "doc": {
2026-06-19T05:17:21.5825883Z           "complete": false,
2026-06-19T05:17:21.5825982Z           "evidence": []
2026-06-19T05:17:21.5826057Z         },
2026-06-19T05:17:21.5826144Z         "impl": {
2026-06-19T05:17:21.5826240Z           "complete": true,
2026-06-19T05:17:21.5826325Z           "evidence": [
2026-06-19T05:17:21.5826410Z             {
2026-06-19T05:17:21.5826645Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5826738Z               "line": 202
2026-06-19T05:17:21.5826824Z             },
2026-06-19T05:17:21.5826911Z             {
2026-06-19T05:17:21.5827029Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:17:21.5827115Z               "line": 107
2026-06-19T05:17:21.5827202Z             },
2026-06-19T05:17:21.5827287Z             {
2026-06-19T05:17:21.5827401Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:17:21.5827488Z               "line": 138
2026-06-19T05:17:21.5827578Z             },
2026-06-19T05:17:21.5827664Z             {
2026-06-19T05:17:21.5827773Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5827861Z               "line": 209
2026-06-19T05:17:21.5827940Z             },
2026-06-19T05:17:21.5828026Z             {
2026-06-19T05:17:21.5828146Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5828227Z               "line": 246
2026-06-19T05:17:21.5828312Z             },
2026-06-19T05:17:21.5828393Z             {
2026-06-19T05:17:21.5828509Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.5828598Z               "line": 379
2026-06-19T05:17:21.5828678Z             }
2026-06-19T05:17:21.5828764Z           ]
2026-06-19T05:17:21.5828845Z         },
2026-06-19T05:17:21.5828929Z         "int": {
2026-06-19T05:17:21.5829095Z           "complete": true,
2026-06-19T05:17:21.5829187Z           "evidence": [
2026-06-19T05:17:21.5829272Z             {
2026-06-19T05:17:21.5829420Z               "path": "crates/spt/tests/unhost_psyche_reap_e2e.rs",
2026-06-19T05:17:21.5829502Z               "line": 17
2026-06-19T05:17:21.5829591Z             }
2026-06-19T05:17:21.5829676Z           ]
2026-06-19T05:17:21.5829764Z         },
2026-06-19T05:17:21.5829845Z         "unit": {
2026-06-19T05:17:21.5829930Z           "complete": true,
2026-06-19T05:17:21.5830026Z           "evidence": [
2026-06-19T05:17:21.5830112Z             {
2026-06-19T05:17:21.5830240Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.5830326Z               "line": 923
2026-06-19T05:17:21.5830398Z             }
2026-06-19T05:17:21.5830483Z           ]
2026-06-19T05:17:21.5830564Z         }
2026-06-19T05:17:21.5830650Z       }
2026-06-19T05:17:21.5830732Z     },
2026-06-19T05:17:21.5830822Z     {
2026-06-19T05:17:21.5830936Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-19T05:17:21.5831189Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-19T05:17:21.5831290Z       "requiredStages": [
2026-06-19T05:17:21.5831372Z         "impl",
2026-06-19T05:17:21.5831460Z         "unit"
2026-06-19T05:17:21.5831541Z       ],
2026-06-19T05:17:21.5831631Z       "stages": {
2026-06-19T05:17:21.5831712Z         "doc": {
2026-06-19T05:17:21.5831805Z           "complete": false,
2026-06-19T05:17:21.5831895Z           "evidence": []
2026-06-19T05:17:21.5831982Z         },
2026-06-19T05:17:21.5832078Z         "impl": {
2026-06-19T05:17:21.5832158Z           "complete": true,
2026-06-19T05:17:21.5832253Z           "evidence": [
2026-06-19T05:17:21.5832340Z             {
2026-06-19T05:17:21.5832463Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.5832548Z               "line": 405
2026-06-19T05:17:21.5832631Z             },
2026-06-19T05:17:21.5832721Z             {
2026-06-19T05:17:21.5832840Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.5833060Z               "line": 409
2026-06-19T05:17:21.5833145Z             },
2026-06-19T05:17:21.5833227Z             {
2026-06-19T05:17:21.5833351Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.5833431Z               "line": 156
2026-06-19T05:17:21.5833522Z             }
2026-06-19T05:17:21.5833604Z           ]
2026-06-19T05:17:21.5833689Z         },
2026-06-19T05:17:21.5833780Z         "int": {
2026-06-19T05:17:21.5833871Z           "complete": false,
2026-06-19T05:17:21.5834060Z           "evidence": []
2026-06-19T05:17:21.5834145Z         },
2026-06-19T05:17:21.5834241Z         "unit": {
2026-06-19T05:17:21.5834326Z           "complete": true,
2026-06-19T05:17:21.5834410Z           "evidence": [
2026-06-19T05:17:21.5834486Z             {
2026-06-19T05:17:21.5834597Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.5834687Z               "line": 865
2026-06-19T05:17:21.5834777Z             },
2026-06-19T05:17:21.5834873Z             {
2026-06-19T05:17:21.5834993Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.5835077Z               "line": 879
2026-06-19T05:17:21.5835164Z             },
2026-06-19T05:17:21.5835240Z             {
2026-06-19T05:17:21.5835355Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.5835435Z               "line": 898
2026-06-19T05:17:21.5835527Z             },
2026-06-19T05:17:21.5835607Z             {
2026-06-19T05:17:21.5835712Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.5835813Z               "line": 915
2026-06-19T05:17:21.5835889Z             },
2026-06-19T05:17:21.5835979Z             {
2026-06-19T05:17:21.5836108Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:17:21.5836209Z               "line": 441
2026-06-19T05:17:21.5836298Z             }
2026-06-19T05:17:21.5836384Z           ]
2026-06-19T05:17:21.5836476Z         }
2026-06-19T05:17:21.5836556Z       }
2026-06-19T05:17:21.5836637Z     },
2026-06-19T05:17:21.5836724Z     {
2026-06-19T05:17:21.5836848Z       "id": "REQ-HAZARD-VIEWER-CLOSE-DETACH",
2026-06-19T05:17:21.5846496Z       "title": "A VIEW is independent from the endpoint: closing the tab/window where `spt endpoint run` was invoked must detach ONLY the `spt rc` attach pump — the daemon-hosted harness keeps running and stays re-attachable via `spt rc <id>`. ROOT (Windows, v0.12.0 real-harness defect): the daemon never breaks away from the launching terminal's Job Object. Windows Terminal / VS Code place the launched shell AND every descendant into a Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; closing the tab drops the terminal's last job handle → the OS terminates every process still in that job. A child escapes only with CREATE_BREAKAWAY_FROM_JOB — used NOWHERE in the tree. Both daemon spawn paths (daemon.rs:707 detached_no_inherit = DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP|CREATE_NO_WINDOW; deelevate.rs:519 elevated = CREATE_NEW_CONSOLE|...) drop the CONSOLE but NOT job membership, so the daemon's freshly broker-spawned ConPTY harness subtree is reaped on tab-close. The ConPTY/pseudoconsole isolation itself is CORRECT (portable-pty builds the pseudoconsole in the daemon; no console signal / handle leak) — the leaking lifetime binding is the Job Object, not the console. FIX: add CREATE_BREAKAWAY_FROM_JOB to both daemon spawn paths AND pin each broker-spawned harness into a DAEMON-OWNED Job Object (mirror reap.rs/Breap) as backstop (survives even where a terminal sets SILENT_BREAKAWAY_OK=false). Unix: the daemon's own session detachment (new session, no controlling terminal) already keeps a closing terminal's SIGHUP off its children — verify, add a guard test, no code expected. FIX UPDATE (v0.12.1 L1.5, doyle re-scope operator-approved 2026-06-18): job-neutral daemon launch is now PRIMARY, breakaway DEMOTED to a fallback rung. ROOT reframed — the daemon INHERITS the terminal's Job because spawn_detached runs FROM the terminal-child CLI (DETACHED_PROCESS detaches the console, not the job); breakaway tried to claw back out but a job CAN deny it (the L1 finding). FIX: launch the cold-started daemon via a job-NEUTRAL creator so it is WmiPrvSE/Task-Scheduler-owned, OUTSIDE any terminal job from birth (why Task-Scheduler-autostarted daemons never had this bug). Launcher ladder (first-success-wins, daemon.rs spawn_detached → BOTH cold-start AND `spt daemon start`): (1) WMI Win32_Process.Create via ABSOLUTE powershell -EncodedCommand (KH 5.12 abs path; base64-UTF16LE dodges all quoting; success requires BOTH ReturnValue==0 AND a parsed ProcessId, else fall-through — never a silent launched), forwarding SPT_* env via a `cmd /c set … & start /b` wrapper because a WMI/scheduler child does NOT inherit transient shell env (verified — SPT_HOME would be lost, wrong universe); (2) schtasks one-shot (same env wrapper; best-effort fallback); (3) CREATE_BREAKAWAY_FROM_JOB (the L1 code, reordered below); (4) in-job last resort (logs DETACH_IN_JOB + tab-close caveat). detached_no_inherit (breakaway-then-in-job) is UNCHANGED for its other caller shellhost::launch_shell (a daemon-spawned shell is already job-neutral once the daemon is). The elevated deelevate path keeps its L1 breakaway for now (elevated-case WMI-reparent = FOLLOW-UP). (v0.12.1)",
2026-06-19T05:17:21.5846835Z       "requiredStages": [
2026-06-19T05:17:21.5846925Z         "doc",
2026-06-19T05:17:21.5847022Z         "impl",
2026-06-19T05:17:21.5847107Z         "unit",
2026-06-19T05:17:21.5847187Z         "int"
2026-06-19T05:17:21.5847274Z       ],
2026-06-19T05:17:21.5847370Z       "stages": {
2026-06-19T05:17:21.5847455Z         "doc": {
2026-06-19T05:17:21.5847554Z           "complete": true,
2026-06-19T05:17:21.5847644Z           "evidence": [
2026-06-19T05:17:21.5847726Z             {
2026-06-19T05:17:21.5847826Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5847906Z               "line": 417
2026-06-19T05:17:21.5848002Z             },
2026-06-19T05:17:21.5848078Z             {
2026-06-19T05:17:21.5848197Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5848298Z               "line": 402
2026-06-19T05:17:21.5848379Z             }
2026-06-19T05:17:21.5848460Z           ]
2026-06-19T05:17:21.5848545Z         },
2026-06-19T05:17:21.5848632Z         "impl": {
2026-06-19T05:17:21.5848722Z           "complete": true,
2026-06-19T05:17:21.5848817Z           "evidence": [
2026-06-19T05:17:21.5848903Z             {
2026-06-19T05:17:21.5849094Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5849175Z               "line": 779
2026-06-19T05:17:21.5849262Z             },
2026-06-19T05:17:21.5849357Z             {
2026-06-19T05:17:21.5849475Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5849567Z               "line": 804
2026-06-19T05:17:21.5849657Z             },
2026-06-19T05:17:21.5849742Z             {
2026-06-19T05:17:21.5849860Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5849942Z               "line": 821
2026-06-19T05:17:21.5850026Z             },
2026-06-19T05:17:21.5850106Z             {
2026-06-19T05:17:21.5850225Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5850312Z               "line": 836
2026-06-19T05:17:21.5850392Z             },
2026-06-19T05:17:21.5850478Z             {
2026-06-19T05:17:21.5850589Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5850688Z               "line": 856
2026-06-19T05:17:21.5850773Z             },
2026-06-19T05:17:21.5850855Z             {
2026-06-19T05:17:21.5850969Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5851050Z               "line": 907
2026-06-19T05:17:21.5851136Z             },
2026-06-19T05:17:21.5851218Z             {
2026-06-19T05:17:21.5851341Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5851422Z               "line": 936
2026-06-19T05:17:21.5851509Z             },
2026-06-19T05:17:21.5851594Z             {
2026-06-19T05:17:21.5851703Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5851904Z               "line": 1000
2026-06-19T05:17:21.5851990Z             },
2026-06-19T05:17:21.5852076Z             {
2026-06-19T05:17:21.5852196Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.5852285Z               "line": 527
2026-06-19T05:17:21.5852366Z             }
2026-06-19T05:17:21.5852448Z           ]
2026-06-19T05:17:21.5852534Z         },
2026-06-19T05:17:21.5852618Z         "int": {
2026-06-19T05:17:21.5852809Z           "complete": true,
2026-06-19T05:17:21.5852898Z           "evidence": [
2026-06-19T05:17:21.5852978Z             {
2026-06-19T05:17:21.5853107Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-19T05:17:21.5853189Z               "line": 31
2026-06-19T05:17:21.5853274Z             },
2026-06-19T05:17:21.5853359Z             {
2026-06-19T05:17:21.5853479Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-19T05:17:21.5853565Z               "line": 309
2026-06-19T05:17:21.5853655Z             }
2026-06-19T05:17:21.5853737Z           ]
2026-06-19T05:17:21.5853813Z         },
2026-06-19T05:17:21.5853903Z         "unit": {
2026-06-19T05:17:21.5853989Z           "complete": true,
2026-06-19T05:17:21.5854081Z           "evidence": [
2026-06-19T05:17:21.5854165Z             {
2026-06-19T05:17:21.5854270Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5854366Z               "line": 1127
2026-06-19T05:17:21.5854447Z             },
2026-06-19T05:17:21.5854532Z             {
2026-06-19T05:17:21.5854637Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5854734Z               "line": 1145
2026-06-19T05:17:21.5854818Z             },
2026-06-19T05:17:21.5854900Z             {
2026-06-19T05:17:21.5855015Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5855105Z               "line": 1159
2026-06-19T05:17:21.5855185Z             },
2026-06-19T05:17:21.5855270Z             {
2026-06-19T05:17:21.5855394Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5855492Z               "line": 1177
2026-06-19T05:17:21.5855573Z             },
2026-06-19T05:17:21.5855659Z             {
2026-06-19T05:17:21.5855775Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5855874Z               "line": 1201
2026-06-19T05:17:21.5855959Z             },
2026-06-19T05:17:21.5856056Z             {
2026-06-19T05:17:21.5856174Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.5856270Z               "line": 1411
2026-06-19T05:17:21.5856360Z             }
2026-06-19T05:17:21.5856446Z           ]
2026-06-19T05:17:21.5856531Z         }
2026-06-19T05:17:21.5856614Z       }
2026-06-19T05:17:21.5856699Z     },
2026-06-19T05:17:21.5856790Z     {
2026-06-19T05:17:21.5856894Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-19T05:17:21.5859053Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-19T05:17:21.5859163Z       "requiredStages": [
2026-06-19T05:17:21.5859240Z         "unit",
2026-06-19T05:17:21.5859330Z         "int"
2026-06-19T05:17:21.5859405Z       ],
2026-06-19T05:17:21.5859498Z       "stages": {
2026-06-19T05:17:21.5859569Z         "doc": {
2026-06-19T05:17:21.5859669Z           "complete": true,
2026-06-19T05:17:21.5859759Z           "evidence": [
2026-06-19T05:17:21.5859936Z             {
2026-06-19T05:17:21.5860049Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5860132Z               "line": 381
2026-06-19T05:17:21.5860213Z             }
2026-06-19T05:17:21.5860297Z           ]
2026-06-19T05:17:21.5860378Z         },
2026-06-19T05:17:21.5860464Z         "impl": {
2026-06-19T05:17:21.5860563Z           "complete": true,
2026-06-19T05:17:21.5860661Z           "evidence": [
2026-06-19T05:17:21.5860752Z             {
2026-06-19T05:17:21.5860957Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5861052Z               "line": 98
2026-06-19T05:17:21.5861139Z             }
2026-06-19T05:17:21.5861230Z           ]
2026-06-19T05:17:21.5861300Z         },
2026-06-19T05:17:21.5861386Z         "int": {
2026-06-19T05:17:21.5861483Z           "complete": true,
2026-06-19T05:17:21.5861577Z           "evidence": [
2026-06-19T05:17:21.5861662Z             {
2026-06-19T05:17:21.5861788Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.5861892Z               "line": 1039
2026-06-19T05:17:21.5861972Z             }
2026-06-19T05:17:21.5862064Z           ]
2026-06-19T05:17:21.5862150Z         },
2026-06-19T05:17:21.5862231Z         "unit": {
2026-06-19T05:17:21.5862321Z           "complete": true,
2026-06-19T05:17:21.5862408Z           "evidence": [
2026-06-19T05:17:21.5862492Z             {
2026-06-19T05:17:21.5862597Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.5862689Z               "line": 1534
2026-06-19T05:17:21.5862770Z             }
2026-06-19T05:17:21.5862859Z           ]
2026-06-19T05:17:21.5862941Z         }
2026-06-19T05:17:21.5863023Z       }
2026-06-19T05:17:21.5863109Z     },
2026-06-19T05:17:21.5863192Z     {
2026-06-19T05:17:21.5863302Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-19T05:17:21.5864082Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-19T05:17:21.5864191Z       "requiredStages": [
2026-06-19T05:17:21.5864278Z         "doc",
2026-06-19T05:17:21.5864359Z         "impl",
2026-06-19T05:17:21.5864445Z         "unit"
2026-06-19T05:17:21.5864525Z       ],
2026-06-19T05:17:21.5864616Z       "stages": {
2026-06-19T05:17:21.5864697Z         "doc": {
2026-06-19T05:17:21.5864797Z           "complete": true,
2026-06-19T05:17:21.5864887Z           "evidence": [
2026-06-19T05:17:21.5864970Z             {
2026-06-19T05:17:21.5865078Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5865154Z               "line": 366
2026-06-19T05:17:21.5865246Z             }
2026-06-19T05:17:21.5865327Z           ]
2026-06-19T05:17:21.5865412Z         },
2026-06-19T05:17:21.5865503Z         "impl": {
2026-06-19T05:17:21.5865595Z           "complete": true,
2026-06-19T05:17:21.5865684Z           "evidence": [
2026-06-19T05:17:21.5865774Z             {
2026-06-19T05:17:21.5865897Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.5865987Z               "line": 87
2026-06-19T05:17:21.5866072Z             },
2026-06-19T05:17:21.5866166Z             {
2026-06-19T05:17:21.5866282Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.5866367Z               "line": 105
2026-06-19T05:17:21.5866457Z             },
2026-06-19T05:17:21.5866544Z             {
2026-06-19T05:17:21.5866663Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.5866758Z               "line": 55
2026-06-19T05:17:21.5866849Z             },
2026-06-19T05:17:21.5866935Z             {
2026-06-19T05:17:21.5867058Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5867145Z               "line": 31
2026-06-19T05:17:21.5867231Z             },
2026-06-19T05:17:21.5867316Z             {
2026-06-19T05:17:21.5867435Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.5867616Z               "line": 446
2026-06-19T05:17:21.5867693Z             },
2026-06-19T05:17:21.5867779Z             {
2026-06-19T05:17:21.5867903Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.5867993Z               "line": 95
2026-06-19T05:17:21.5868074Z             },
2026-06-19T05:17:21.5868162Z             {
2026-06-19T05:17:21.5868293Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.5868438Z               "line": 29
2026-06-19T05:17:21.5868528Z             },
2026-06-19T05:17:21.5868607Z             {
2026-06-19T05:17:21.5868726Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.5868813Z               "line": 104
2026-06-19T05:17:21.5868899Z             },
2026-06-19T05:17:21.5869055Z             {
2026-06-19T05:17:21.5869176Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5871842Z               "line": 208
2026-06-19T05:17:21.5871961Z             },
2026-06-19T05:17:21.5872052Z             {
2026-06-19T05:17:21.5872189Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:17:21.5872286Z               "line": 28
2026-06-19T05:17:21.5872376Z             },
2026-06-19T05:17:21.5872457Z             {
2026-06-19T05:17:21.5872585Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:17:21.5872667Z               "line": 74
2026-06-19T05:17:21.5872757Z             },
2026-06-19T05:17:21.5872833Z             {
2026-06-19T05:17:21.5872973Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:17:21.5873067Z               "line": 32
2026-06-19T05:17:21.5873139Z             },
2026-06-19T05:17:21.5873220Z             {
2026-06-19T05:17:21.5873335Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5873424Z               "line": 40
2026-06-19T05:17:21.5873496Z             },
2026-06-19T05:17:21.5873583Z             {
2026-06-19T05:17:21.5873692Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5873786Z               "line": 184
2026-06-19T05:17:21.5873867Z             },
2026-06-19T05:17:21.5873948Z             {
2026-06-19T05:17:21.5874065Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.5874151Z               "line": 61
2026-06-19T05:17:21.5874227Z             },
2026-06-19T05:17:21.5874313Z             {
2026-06-19T05:17:21.5874422Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.5874518Z               "line": 131
2026-06-19T05:17:21.5874595Z             },
2026-06-19T05:17:21.5874681Z             {
2026-06-19T05:17:21.5874794Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.5874886Z               "line": 223
2026-06-19T05:17:21.5874971Z             },
2026-06-19T05:17:21.5875052Z             {
2026-06-19T05:17:21.5875177Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:17:21.5875258Z               "line": 37
2026-06-19T05:17:21.5875348Z             },
2026-06-19T05:17:21.5875434Z             {
2026-06-19T05:17:21.5875544Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.5875633Z               "line": 38
2026-06-19T05:17:21.5875724Z             },
2026-06-19T05:17:21.5875816Z             {
2026-06-19T05:17:21.5875934Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:17:21.5876029Z               "line": 36
2026-06-19T05:17:21.5876121Z             },
2026-06-19T05:17:21.5876198Z             {
2026-06-19T05:17:21.5876315Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:17:21.5876400Z               "line": 40
2026-06-19T05:17:21.5876496Z             }
2026-06-19T05:17:21.5876589Z           ]
2026-06-19T05:17:21.5876674Z         },
2026-06-19T05:17:21.5876765Z         "int": {
2026-06-19T05:17:21.5876866Z           "complete": false,
2026-06-19T05:17:21.5876961Z           "evidence": []
2026-06-19T05:17:21.5877051Z         },
2026-06-19T05:17:21.5877143Z         "unit": {
2026-06-19T05:17:21.5877375Z           "complete": true,
2026-06-19T05:17:21.5877472Z           "evidence": [
2026-06-19T05:17:21.5877553Z             {
2026-06-19T05:17:21.5877680Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.5877772Z               "line": 212
2026-06-19T05:17:21.5877857Z             },
2026-06-19T05:17:21.5877942Z             {
2026-06-19T05:17:21.5878073Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-19T05:17:21.5878153Z               "line": 136
2026-06-19T05:17:21.5878344Z             },
2026-06-19T05:17:21.5878426Z             {
2026-06-19T05:17:21.5878553Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:17:21.5878639Z               "line": 685
2026-06-19T05:17:21.5878722Z             },
2026-06-19T05:17:21.5878801Z             {
2026-06-19T05:17:21.5878935Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:17:21.5879116Z               "line": 224
2026-06-19T05:17:21.5879191Z             },
2026-06-19T05:17:21.5879272Z             {
2026-06-19T05:17:21.5879402Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:17:21.5879501Z               "line": 206
2026-06-19T05:17:21.5879581Z             },
2026-06-19T05:17:21.5879664Z             {
2026-06-19T05:17:21.5879783Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:17:21.5879873Z               "line": 112
2026-06-19T05:17:21.5879954Z             },
2026-06-19T05:17:21.5880036Z             {
2026-06-19T05:17:21.5880159Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:17:21.5880245Z               "line": 157
2026-06-19T05:17:21.5880327Z             },
2026-06-19T05:17:21.5880417Z             {
2026-06-19T05:17:21.5880531Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.5880618Z               "line": 215
2026-06-19T05:17:21.5880694Z             },
2026-06-19T05:17:21.5880774Z             {
2026-06-19T05:17:21.5880894Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:17:21.5880980Z               "line": 141
2026-06-19T05:17:21.5881070Z             },
2026-06-19T05:17:21.5881151Z             {
2026-06-19T05:17:21.5881267Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:17:21.5881347Z               "line": 162
2026-06-19T05:17:21.5881427Z             }
2026-06-19T05:17:21.5881517Z           ]
2026-06-19T05:17:21.5881599Z         }
2026-06-19T05:17:21.5881688Z       }
2026-06-19T05:17:21.5881768Z     },
2026-06-19T05:17:21.5881853Z     {
2026-06-19T05:17:21.5881997Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
2026-06-19T05:17:21.5883852Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
2026-06-19T05:17:21.5883961Z       "requiredStages": [
2026-06-19T05:17:21.5884042Z         "doc",
2026-06-19T05:17:21.5884134Z         "impl",
2026-06-19T05:17:21.5884224Z         "unit",
2026-06-19T05:17:21.5884304Z         "int"
2026-06-19T05:17:21.5884389Z       ],
2026-06-19T05:17:21.5884475Z       "stages": {
2026-06-19T05:17:21.5884560Z         "doc": {
2026-06-19T05:17:21.5884653Z           "complete": true,
2026-06-19T05:17:21.5884749Z           "evidence": [
2026-06-19T05:17:21.5884836Z             {
2026-06-19T05:17:21.5884945Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:17:21.5885030Z               "line": 250
2026-06-19T05:17:21.5885112Z             }
2026-06-19T05:17:21.5885202Z           ]
2026-06-19T05:17:21.5885383Z         },
2026-06-19T05:17:21.5885475Z         "impl": {
2026-06-19T05:17:21.5885565Z           "complete": true,
2026-06-19T05:17:21.5885640Z           "evidence": [
2026-06-19T05:17:21.5885732Z             {
2026-06-19T05:17:21.5885841Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:17:21.5885936Z               "line": 135
2026-06-19T05:17:21.5886022Z             },
2026-06-19T05:17:21.5886114Z             {
2026-06-19T05:17:21.5886227Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:17:21.5886409Z               "line": 157
2026-06-19T05:17:21.5886494Z             }
2026-06-19T05:17:21.5886571Z           ]
2026-06-19T05:17:21.5886657Z         },
2026-06-19T05:17:21.5886739Z         "int": {
2026-06-19T05:17:21.5886837Z           "complete": true,
2026-06-19T05:17:21.5886923Z           "evidence": [
2026-06-19T05:17:21.5887008Z             {
2026-06-19T05:17:21.5887136Z               "path": "crates/spt-term/tests/winspawn.rs",
2026-06-19T05:17:21.5887216Z               "line": 15
2026-06-19T05:17:21.5887311Z             }
2026-06-19T05:17:21.5887393Z           ]
2026-06-19T05:17:21.5887474Z         },
2026-06-19T05:17:21.5887554Z         "unit": {
2026-06-19T05:17:21.5887645Z           "complete": true,
2026-06-19T05:17:21.5887741Z           "evidence": [
2026-06-19T05:17:21.5887831Z             {
2026-06-19T05:17:21.5887950Z               "path": "crates/spt-term/src/winprog.rs",
2026-06-19T05:17:21.5888032Z               "line": 233
2026-06-19T05:17:21.5888113Z             }
2026-06-19T05:17:21.5888197Z           ]
2026-06-19T05:17:21.5888280Z         }
2026-06-19T05:17:21.5888366Z       }
2026-06-19T05:17:21.5888446Z     },
2026-06-19T05:17:21.5888527Z     {
2026-06-19T05:17:21.5888643Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-19T05:17:21.5888799Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-19T05:17:21.5888899Z       "requiredStages": [
2026-06-19T05:17:21.5889070Z         "impl",
2026-06-19T05:17:21.5889151Z         "unit"
2026-06-19T05:17:21.5889239Z       ],
2026-06-19T05:17:21.5889329Z       "stages": {
2026-06-19T05:17:21.5889428Z         "doc": {
2026-06-19T05:17:21.5889514Z           "complete": false,
2026-06-19T05:17:21.5889611Z           "evidence": []
2026-06-19T05:17:21.5889695Z         },
2026-06-19T05:17:21.5889785Z         "impl": {
2026-06-19T05:17:21.5889866Z           "complete": true,
2026-06-19T05:17:21.5889952Z           "evidence": [
2026-06-19T05:17:21.5890033Z             {
2026-06-19T05:17:21.5890166Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.5890248Z               "line": 95
2026-06-19T05:17:21.5890334Z             },
2026-06-19T05:17:21.5890414Z             {
2026-06-19T05:17:21.5890524Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5890615Z               "line": 117
2026-06-19T05:17:21.5890691Z             }
2026-06-19T05:17:21.5890781Z           ]
2026-06-19T05:17:21.5890868Z         },
2026-06-19T05:17:21.5890958Z         "int": {
2026-06-19T05:17:21.5891048Z           "complete": false,
2026-06-19T05:17:21.5891139Z           "evidence": []
2026-06-19T05:17:21.5891221Z         },
2026-06-19T05:17:21.5891306Z         "unit": {
2026-06-19T05:17:21.5891401Z           "complete": true,
2026-06-19T05:17:21.5891488Z           "evidence": [
2026-06-19T05:17:21.5891568Z             {
2026-06-19T05:17:21.5891677Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.5891759Z               "line": 250
2026-06-19T05:17:21.5891851Z             },
2026-06-19T05:17:21.5891935Z             {
2026-06-19T05:17:21.5892053Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.5892149Z               "line": 412
2026-06-19T05:17:21.5892229Z             },
2026-06-19T05:17:21.5892314Z             {
2026-06-19T05:17:21.5892428Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5892519Z               "line": 580
2026-06-19T05:17:21.5892604Z             },
2026-06-19T05:17:21.5892694Z             {
2026-06-19T05:17:21.5892905Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5892990Z               "line": 638
2026-06-19T05:17:21.5893071Z             }
2026-06-19T05:17:21.5893158Z           ]
2026-06-19T05:17:21.5893239Z         }
2026-06-19T05:17:21.5893319Z       }
2026-06-19T05:17:21.5893406Z     },
2026-06-19T05:17:21.5893487Z     {
2026-06-19T05:17:21.5893591Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-19T05:17:21.5893769Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-19T05:17:21.5893977Z       "requiredStages": [
2026-06-19T05:17:21.5894060Z         "impl",
2026-06-19T05:17:21.5894149Z         "unit"
2026-06-19T05:17:21.5894230Z       ],
2026-06-19T05:17:21.5894316Z       "stages": {
2026-06-19T05:17:21.5894403Z         "doc": {
2026-06-19T05:17:21.5894506Z           "complete": false,
2026-06-19T05:17:21.5894588Z           "evidence": []
2026-06-19T05:17:21.5894670Z         },
2026-06-19T05:17:21.5894751Z         "impl": {
2026-06-19T05:17:21.5894855Z           "complete": true,
2026-06-19T05:17:21.5894949Z           "evidence": [
2026-06-19T05:17:21.5895035Z             {
2026-06-19T05:17:21.5895152Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5895228Z               "line": 262
2026-06-19T05:17:21.5895319Z             },
2026-06-19T05:17:21.5895396Z             {
2026-06-19T05:17:21.5895519Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5895610Z               "line": 307
2026-06-19T05:17:21.5895691Z             },
2026-06-19T05:17:21.5895777Z             {
2026-06-19T05:17:21.5895881Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5895973Z               "line": 319
2026-06-19T05:17:21.5896054Z             }
2026-06-19T05:17:21.5896144Z           ]
2026-06-19T05:17:21.5896224Z         },
2026-06-19T05:17:21.5896311Z         "int": {
2026-06-19T05:17:21.5896406Z           "complete": false,
2026-06-19T05:17:21.5896497Z           "evidence": []
2026-06-19T05:17:21.5896592Z         },
2026-06-19T05:17:21.5896678Z         "unit": {
2026-06-19T05:17:21.5896772Z           "complete": true,
2026-06-19T05:17:21.5896859Z           "evidence": [
2026-06-19T05:17:21.5896941Z             {
2026-06-19T05:17:21.5897059Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5897140Z               "line": 455
2026-06-19T05:17:21.5897217Z             },
2026-06-19T05:17:21.5897299Z             {
2026-06-19T05:17:21.5897416Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.5897501Z               "line": 499
2026-06-19T05:17:21.5897587Z             }
2026-06-19T05:17:21.5897668Z           ]
2026-06-19T05:17:21.5897747Z         }
2026-06-19T05:17:21.5897828Z       }
2026-06-19T05:17:21.5897914Z     },
2026-06-19T05:17:21.5897996Z     {
2026-06-19T05:17:21.5898095Z       "id": "REQ-HOST-RUN-1",
2026-06-19T05:17:21.5900522Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-19T05:17:21.5900626Z       "requiredStages": [
2026-06-19T05:17:21.5900721Z         "impl",
2026-06-19T05:17:21.5900798Z         "unit",
2026-06-19T05:17:21.5900879Z         "int"
2026-06-19T05:17:21.5900959Z       ],
2026-06-19T05:17:21.5901040Z       "stages": {
2026-06-19T05:17:21.5901138Z         "doc": {
2026-06-19T05:17:21.5901223Z           "complete": false,
2026-06-19T05:17:21.5901418Z           "evidence": []
2026-06-19T05:17:21.5901504Z         },
2026-06-19T05:17:21.5901585Z         "impl": {
2026-06-19T05:17:21.5901680Z           "complete": true,
2026-06-19T05:17:21.5901757Z           "evidence": [
2026-06-19T05:17:21.5901837Z             {
2026-06-19T05:17:21.5901966Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5902058Z               "line": 30
2026-06-19T05:17:21.5902143Z             },
2026-06-19T05:17:21.5902328Z             {
2026-06-19T05:17:21.5902458Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5902543Z               "line": 69
2026-06-19T05:17:21.5902632Z             },
2026-06-19T05:17:21.5902709Z             {
2026-06-19T05:17:21.5902836Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5902926Z               "line": 142
2026-06-19T05:17:21.5903007Z             },
2026-06-19T05:17:21.5903094Z             {
2026-06-19T05:17:21.5903193Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5903293Z               "line": 1257
2026-06-19T05:17:21.5903375Z             }
2026-06-19T05:17:21.5903461Z           ]
2026-06-19T05:17:21.5903546Z         },
2026-06-19T05:17:21.5903627Z         "int": {
2026-06-19T05:17:21.5903728Z           "complete": true,
2026-06-19T05:17:21.5903803Z           "evidence": [
2026-06-19T05:17:21.5903884Z             {
2026-06-19T05:17:21.5904005Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.5904090Z               "line": 284
2026-06-19T05:17:21.5904175Z             }
2026-06-19T05:17:21.5904261Z           ]
2026-06-19T05:17:21.5904343Z         },
2026-06-19T05:17:21.5904418Z         "unit": {
2026-06-19T05:17:21.5904504Z           "complete": true,
2026-06-19T05:17:21.5904591Z           "evidence": [
2026-06-19T05:17:21.5904677Z             {
2026-06-19T05:17:21.5904800Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5904896Z               "line": 184
2026-06-19T05:17:21.5904982Z             },
2026-06-19T05:17:21.5905057Z             {
2026-06-19T05:17:21.5905181Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5905274Z               "line": 225
2026-06-19T05:17:21.5905363Z             },
2026-06-19T05:17:21.5905448Z             {
2026-06-19T05:17:21.5905571Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5905666Z               "line": 258
2026-06-19T05:17:21.5905755Z             }
2026-06-19T05:17:21.5905840Z           ]
2026-06-19T05:17:21.5905927Z         }
2026-06-19T05:17:21.5906018Z       }
2026-06-19T05:17:21.5906103Z     },
2026-06-19T05:17:21.5906193Z     {
2026-06-19T05:17:21.5906295Z       "id": "REQ-HOST-RUN-2",
2026-06-19T05:17:21.5907948Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-19T05:17:21.5908052Z       "requiredStages": [
2026-06-19T05:17:21.5908143Z         "impl",
2026-06-19T05:17:21.5908228Z         "unit",
2026-06-19T05:17:21.5908322Z         "int"
2026-06-19T05:17:21.5908402Z       ],
2026-06-19T05:17:21.5908488Z       "stages": {
2026-06-19T05:17:21.5908576Z         "doc": {
2026-06-19T05:17:21.5908669Z           "complete": false,
2026-06-19T05:17:21.5908760Z           "evidence": []
2026-06-19T05:17:21.5908842Z         },
2026-06-19T05:17:21.5908928Z         "impl": {
2026-06-19T05:17:21.5909195Z           "complete": true,
2026-06-19T05:17:21.5909294Z           "evidence": [
2026-06-19T05:17:21.5909385Z             {
2026-06-19T05:17:21.5909514Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:17:21.5909605Z               "line": 143
2026-06-19T05:17:21.5909686Z             },
2026-06-19T05:17:21.5909767Z             {
2026-06-19T05:17:21.5909881Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:17:21.5909976Z               "line": 113
2026-06-19T05:17:21.5910153Z             }
2026-06-19T05:17:21.5910239Z           ]
2026-06-19T05:17:21.5910320Z         },
2026-06-19T05:17:21.5910407Z         "int": {
2026-06-19T05:17:21.5910505Z           "complete": true,
2026-06-19T05:17:21.5910591Z           "evidence": [
2026-06-19T05:17:21.5910679Z             {
2026-06-19T05:17:21.5910802Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.5910891Z               "line": 570
2026-06-19T05:17:21.5910971Z             }
2026-06-19T05:17:21.5911058Z           ]
2026-06-19T05:17:21.5911140Z         },
2026-06-19T05:17:21.5911229Z         "unit": {
2026-06-19T05:17:21.5911325Z           "complete": true,
2026-06-19T05:17:21.5911406Z           "evidence": [
2026-06-19T05:17:21.5911492Z             {
2026-06-19T05:17:21.5911615Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-19T05:17:21.5911698Z               "line": 86
2026-06-19T05:17:21.5911778Z             }
2026-06-19T05:17:21.5911863Z           ]
2026-06-19T05:17:21.5911940Z         }
2026-06-19T05:17:21.5912027Z       }
2026-06-19T05:17:21.5912106Z     },
2026-06-19T05:17:21.5912201Z     {
2026-06-19T05:17:21.5912293Z       "id": "REQ-INFRA-1",
2026-06-19T05:17:21.5912469Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-19T05:17:21.5912560Z       "requiredStages": [],
2026-06-19T05:17:21.5912642Z       "stages": {
2026-06-19T05:17:21.5912726Z         "doc": {
2026-06-19T05:17:21.5912821Z           "complete": false,
2026-06-19T05:17:21.5912913Z           "evidence": []
2026-06-19T05:17:21.5913000Z         },
2026-06-19T05:17:21.5913093Z         "impl": {
2026-06-19T05:17:21.5913178Z           "complete": false,
2026-06-19T05:17:21.5913264Z           "evidence": []
2026-06-19T05:17:21.5913340Z         },
2026-06-19T05:17:21.5913424Z         "int": {
2026-06-19T05:17:21.5913519Z           "complete": false,
2026-06-19T05:17:21.5913601Z           "evidence": []
2026-06-19T05:17:21.5913692Z         },
2026-06-19T05:17:21.5913777Z         "unit": {
2026-06-19T05:17:21.5913877Z           "complete": false,
2026-06-19T05:17:21.5913963Z           "evidence": []
2026-06-19T05:17:21.5914049Z         }
2026-06-19T05:17:21.5914134Z       }
2026-06-19T05:17:21.5914216Z     },
2026-06-19T05:17:21.5914302Z     {
2026-06-19T05:17:21.5914387Z       "id": "REQ-INST-1",
2026-06-19T05:17:21.5914546Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-19T05:17:21.5914635Z       "requiredStages": [],
2026-06-19T05:17:21.5914730Z       "stages": {
2026-06-19T05:17:21.5914811Z         "doc": {
2026-06-19T05:17:21.5914894Z           "complete": false,
2026-06-19T05:17:21.5914988Z           "evidence": []
2026-06-19T05:17:21.5915069Z         },
2026-06-19T05:17:21.5915156Z         "impl": {
2026-06-19T05:17:21.5915246Z           "complete": false,
2026-06-19T05:17:21.5915336Z           "evidence": []
2026-06-19T05:17:21.5915422Z         },
2026-06-19T05:17:21.5915509Z         "int": {
2026-06-19T05:17:21.5915608Z           "complete": false,
2026-06-19T05:17:21.5915689Z           "evidence": []
2026-06-19T05:17:21.5915776Z         },
2026-06-19T05:17:21.5915862Z         "unit": {
2026-06-19T05:17:21.5915955Z           "complete": false,
2026-06-19T05:17:21.5916054Z           "evidence": []
2026-06-19T05:17:21.5916136Z         }
2026-06-19T05:17:21.5916226Z       }
2026-06-19T05:17:21.5916310Z     },
2026-06-19T05:17:21.5916395Z     {
2026-06-19T05:17:21.5916492Z       "id": "REQ-INST-10",
2026-06-19T05:17:21.5916700Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-19T05:17:21.5916878Z       "requiredStages": [
2026-06-19T05:17:21.5916963Z         "impl",
2026-06-19T05:17:21.5917059Z         "unit"
2026-06-19T05:17:21.5917145Z       ],
2026-06-19T05:17:21.5917226Z       "stages": {
2026-06-19T05:17:21.5917311Z         "doc": {
2026-06-19T05:17:21.5917402Z           "complete": false,
2026-06-19T05:17:21.5917498Z           "evidence": []
2026-06-19T05:17:21.5917574Z         },
2026-06-19T05:17:21.5917727Z         "impl": {
2026-06-19T05:17:21.5917808Z           "complete": true,
2026-06-19T05:17:21.5917907Z           "evidence": [
2026-06-19T05:17:21.5917988Z             {
2026-06-19T05:17:21.5918113Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5918213Z               "line": 648
2026-06-19T05:17:21.5918294Z             },
2026-06-19T05:17:21.5918376Z             {
2026-06-19T05:17:21.5918494Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5918593Z               "line": 725
2026-06-19T05:17:21.5918679Z             },
2026-06-19T05:17:21.5918769Z             {
2026-06-19T05:17:21.5918891Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:17:21.5919040Z               "line": 13
2026-06-19T05:17:21.5919126Z             },
2026-06-19T05:17:21.5919202Z             {
2026-06-19T05:17:21.5919320Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:17:21.5919422Z               "line": 67
2026-06-19T05:17:21.5919507Z             },
2026-06-19T05:17:21.5919597Z             {
2026-06-19T05:17:21.5919698Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.5919783Z               "line": 18
2026-06-19T05:17:21.5919869Z             },
2026-06-19T05:17:21.5919960Z             {
2026-06-19T05:17:21.5920055Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.5920146Z               "line": 444
2026-06-19T05:17:21.5920226Z             }
2026-06-19T05:17:21.5920309Z           ]
2026-06-19T05:17:21.5920399Z         },
2026-06-19T05:17:21.5920475Z         "int": {
2026-06-19T05:17:21.5920580Z           "complete": false,
2026-06-19T05:17:21.5920666Z           "evidence": []
2026-06-19T05:17:21.5920751Z         },
2026-06-19T05:17:21.5920846Z         "unit": {
2026-06-19T05:17:21.5920938Z           "complete": true,
2026-06-19T05:17:21.5921028Z           "evidence": [
2026-06-19T05:17:21.5921113Z             {
2026-06-19T05:17:21.5921243Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5921324Z               "line": 932
2026-06-19T05:17:21.5921408Z             },
2026-06-19T05:17:21.5921503Z             {
2026-06-19T05:17:21.5921618Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5921714Z               "line": 1309
2026-06-19T05:17:21.5921794Z             },
2026-06-19T05:17:21.5921880Z             {
2026-06-19T05:17:21.5921995Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5922085Z               "line": 1320
2026-06-19T05:17:21.5922171Z             },
2026-06-19T05:17:21.5922253Z             {
2026-06-19T05:17:21.5922372Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5922456Z               "line": 1336
2026-06-19T05:17:21.5922548Z             },
2026-06-19T05:17:21.5922634Z             {
2026-06-19T05:17:21.5922757Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5922849Z               "line": 1352
2026-06-19T05:17:21.5922930Z             },
2026-06-19T05:17:21.5923015Z             {
2026-06-19T05:17:21.5923134Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5923235Z               "line": 1374
2026-06-19T05:17:21.5923319Z             },
2026-06-19T05:17:21.5923401Z             {
2026-06-19T05:17:21.5923526Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5923616Z               "line": 1679
2026-06-19T05:17:21.5923696Z             },
2026-06-19T05:17:21.5923872Z             {
2026-06-19T05:17:21.5923994Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:17:21.5924084Z               "line": 130
2026-06-19T05:17:21.5924161Z             },
2026-06-19T05:17:21.5924253Z             {
2026-06-19T05:17:21.5924356Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:17:21.5924456Z               "line": 167
2026-06-19T05:17:21.5924533Z             },
2026-06-19T05:17:21.5924614Z             {
2026-06-19T05:17:21.5924732Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:17:21.5924938Z               "line": 175
2026-06-19T05:17:21.5925019Z             },
2026-06-19T05:17:21.5925101Z             {
2026-06-19T05:17:21.5925219Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:17:21.5925309Z               "line": 183
2026-06-19T05:17:21.5925396Z             },
2026-06-19T05:17:21.5925478Z             {
2026-06-19T05:17:21.5925582Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.5925681Z               "line": 896
2026-06-19T05:17:21.5925769Z             }
2026-06-19T05:17:21.5925848Z           ]
2026-06-19T05:17:21.5925934Z         }
2026-06-19T05:17:21.5926016Z       }
2026-06-19T05:17:21.5926103Z     },
2026-06-19T05:17:21.5926186Z     {
2026-06-19T05:17:21.5926273Z       "id": "REQ-INST-11",
2026-06-19T05:17:21.5926483Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-19T05:17:21.5926592Z       "requiredStages": [
2026-06-19T05:17:21.5926682Z         "impl",
2026-06-19T05:17:21.5926777Z         "unit"
2026-06-19T05:17:21.5926866Z       ],
2026-06-19T05:17:21.5926955Z       "stages": {
2026-06-19T05:17:21.5927047Z         "doc": {
2026-06-19T05:17:21.5927129Z           "complete": false,
2026-06-19T05:17:21.5927218Z           "evidence": []
2026-06-19T05:17:21.5927304Z         },
2026-06-19T05:17:21.5927400Z         "impl": {
2026-06-19T05:17:21.5927495Z           "complete": true,
2026-06-19T05:17:21.5927571Z           "evidence": [
2026-06-19T05:17:21.5927658Z             {
2026-06-19T05:17:21.5927782Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5927881Z               "line": 514
2026-06-19T05:17:21.5927963Z             },
2026-06-19T05:17:21.5928053Z             {
2026-06-19T05:17:21.5928182Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5928268Z               "line": 297
2026-06-19T05:17:21.5928354Z             },
2026-06-19T05:17:21.5928434Z             {
2026-06-19T05:17:21.5928558Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:17:21.5928650Z               "line": 59
2026-06-19T05:17:21.5928730Z             },
2026-06-19T05:17:21.5928821Z             {
2026-06-19T05:17:21.5928922Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5929116Z               "line": 5148
2026-06-19T05:17:21.5929201Z             },
2026-06-19T05:17:21.5929282Z             {
2026-06-19T05:17:21.5929395Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5929503Z               "line": 6994
2026-06-19T05:17:21.5929585Z             }
2026-06-19T05:17:21.5929667Z           ]
2026-06-19T05:17:21.5929752Z         },
2026-06-19T05:17:21.5929832Z         "int": {
2026-06-19T05:17:21.5929929Z           "complete": false,
2026-06-19T05:17:21.5930019Z           "evidence": []
2026-06-19T05:17:21.5930095Z         },
2026-06-19T05:17:21.5930186Z         "unit": {
2026-06-19T05:17:21.5930272Z           "complete": true,
2026-06-19T05:17:21.5930367Z           "evidence": [
2026-06-19T05:17:21.5930452Z             {
2026-06-19T05:17:21.5930582Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5930677Z               "line": 1479
2026-06-19T05:17:21.5930763Z             },
2026-06-19T05:17:21.5930849Z             {
2026-06-19T05:17:21.5930973Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5931063Z               "line": 1512
2026-06-19T05:17:21.5931149Z             },
2026-06-19T05:17:21.5931339Z             {
2026-06-19T05:17:21.5931464Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5931551Z               "line": 527
2026-06-19T05:17:21.5931630Z             },
2026-06-19T05:17:21.5931707Z             {
2026-06-19T05:17:21.5931823Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:17:21.5931917Z               "line": 160
2026-06-19T05:17:21.5932002Z             },
2026-06-19T05:17:21.5932092Z             {
2026-06-19T05:17:21.5932208Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:17:21.5932402Z               "line": 190
2026-06-19T05:17:21.5932483Z             },
2026-06-19T05:17:21.5932569Z             {
2026-06-19T05:17:21.5932678Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:17:21.5932765Z               "line": 225
2026-06-19T05:17:21.5932846Z             },
2026-06-19T05:17:21.5932932Z             {
2026-06-19T05:17:21.5933041Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5933132Z               "line": 7851
2026-06-19T05:17:21.5933222Z             }
2026-06-19T05:17:21.5933308Z           ]
2026-06-19T05:17:21.5933394Z         }
2026-06-19T05:17:21.5933480Z       }
2026-06-19T05:17:21.5933565Z     },
2026-06-19T05:17:21.5933646Z     {
2026-06-19T05:17:21.5933738Z       "id": "REQ-INST-12",
2026-06-19T05:17:21.5934014Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-19T05:17:21.5934101Z       "requiredStages": [
2026-06-19T05:17:21.5934180Z         "impl",
2026-06-19T05:17:21.5934265Z         "unit"
2026-06-19T05:17:21.5934351Z       ],
2026-06-19T05:17:21.5934427Z       "stages": {
2026-06-19T05:17:21.5934512Z         "doc": {
2026-06-19T05:17:21.5934616Z           "complete": false,
2026-06-19T05:17:21.5934697Z           "evidence": []
2026-06-19T05:17:21.5934788Z         },
2026-06-19T05:17:21.5934878Z         "impl": {
2026-06-19T05:17:21.5934964Z           "complete": true,
2026-06-19T05:17:21.5935060Z           "evidence": [
2026-06-19T05:17:21.5935146Z             {
2026-06-19T05:17:21.5935269Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5935356Z               "line": 566
2026-06-19T05:17:21.5935441Z             },
2026-06-19T05:17:21.5935522Z             {
2026-06-19T05:17:21.5935647Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5935742Z               "line": 659
2026-06-19T05:17:21.5935827Z             },
2026-06-19T05:17:21.5935922Z             {
2026-06-19T05:17:21.5936038Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5936133Z               "line": 739
2026-06-19T05:17:21.5936227Z             },
2026-06-19T05:17:21.5936310Z             {
2026-06-19T05:17:21.5936423Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5936513Z               "line": 96
2026-06-19T05:17:21.5936601Z             },
2026-06-19T05:17:21.5936687Z             {
2026-06-19T05:17:21.5936800Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5936901Z               "line": 269
2026-06-19T05:17:21.5936982Z             },
2026-06-19T05:17:21.5937066Z             {
2026-06-19T05:17:21.5937189Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5937285Z               "line": 148
2026-06-19T05:17:21.5937365Z             }
2026-06-19T05:17:21.5937445Z           ]
2026-06-19T05:17:21.5937535Z         },
2026-06-19T05:17:21.5937617Z         "int": {
2026-06-19T05:17:21.5937722Z           "complete": false,
2026-06-19T05:17:21.5937817Z           "evidence": []
2026-06-19T05:17:21.5937898Z         },
2026-06-19T05:17:21.5937984Z         "unit": {
2026-06-19T05:17:21.5938074Z           "complete": true,
2026-06-19T05:17:21.5938169Z           "evidence": [
2026-06-19T05:17:21.5938252Z             {
2026-06-19T05:17:21.5938375Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5938460Z               "line": 1554
2026-06-19T05:17:21.5938623Z             },
2026-06-19T05:17:21.5938708Z             {
2026-06-19T05:17:21.5938823Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5938919Z               "line": 1577
2026-06-19T05:17:21.5939090Z             },
2026-06-19T05:17:21.5939182Z             {
2026-06-19T05:17:21.5939290Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5939381Z               "line": 1614
2026-06-19T05:17:21.5939473Z             },
2026-06-19T05:17:21.5939652Z             {
2026-06-19T05:17:21.5939770Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.5939862Z               "line": 457
2026-06-19T05:17:21.5942383Z             },
2026-06-19T05:17:21.5942491Z             {
2026-06-19T05:17:21.5942633Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5942729Z               "line": 185
2026-06-19T05:17:21.5942815Z             },
2026-06-19T05:17:21.5942895Z             {
2026-06-19T05:17:21.5943029Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5943120Z               "line": 206
2026-06-19T05:17:21.5943205Z             },
2026-06-19T05:17:21.5943291Z             {
2026-06-19T05:17:21.5943411Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5943497Z               "line": 232
2026-06-19T05:17:21.5943581Z             }
2026-06-19T05:17:21.5943664Z           ]
2026-06-19T05:17:21.5943745Z         }
2026-06-19T05:17:21.5943830Z       }
2026-06-19T05:17:21.5943925Z     },
2026-06-19T05:17:21.5944012Z     {
2026-06-19T05:17:21.5944097Z       "id": "REQ-INST-13",
2026-06-19T05:17:21.5944284Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-19T05:17:21.5944369Z       "requiredStages": [
2026-06-19T05:17:21.5944459Z         "impl",
2026-06-19T05:17:21.5944540Z         "unit"
2026-06-19T05:17:21.5944623Z       ],
2026-06-19T05:17:21.5944713Z       "stages": {
2026-06-19T05:17:21.5944792Z         "doc": {
2026-06-19T05:17:21.5944896Z           "complete": false,
2026-06-19T05:17:21.5944987Z           "evidence": []
2026-06-19T05:17:21.5945067Z         },
2026-06-19T05:17:21.5945147Z         "impl": {
2026-06-19T05:17:21.5945248Z           "complete": true,
2026-06-19T05:17:21.5945339Z           "evidence": [
2026-06-19T05:17:21.5945424Z             {
2026-06-19T05:17:21.5945548Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5945630Z               "line": 100
2026-06-19T05:17:21.5945711Z             },
2026-06-19T05:17:21.5945790Z             {
2026-06-19T05:17:21.5945911Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5946006Z               "line": 171
2026-06-19T05:17:21.5946091Z             }
2026-06-19T05:17:21.5946177Z           ]
2026-06-19T05:17:21.5946264Z         },
2026-06-19T05:17:21.5946359Z         "int": {
2026-06-19T05:17:21.5946453Z           "complete": false,
2026-06-19T05:17:21.5946550Z           "evidence": []
2026-06-19T05:17:21.5946640Z         },
2026-06-19T05:17:21.5946726Z         "unit": {
2026-06-19T05:17:21.5946826Z           "complete": true,
2026-06-19T05:17:21.5946922Z           "evidence": [
2026-06-19T05:17:21.5947006Z             {
2026-06-19T05:17:21.5947117Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5947204Z               "line": 261
2026-06-19T05:17:21.5947293Z             },
2026-06-19T05:17:21.5947379Z             {
2026-06-19T05:17:21.5947499Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:17:21.5947590Z               "line": 279
2026-06-19T05:17:21.5947678Z             }
2026-06-19T05:17:21.5947763Z           ]
2026-06-19T05:17:21.5947850Z         }
2026-06-19T05:17:21.5947930Z       }
2026-06-19T05:17:21.5948019Z     },
2026-06-19T05:17:21.5948105Z     {
2026-06-19T05:17:21.5948197Z       "id": "REQ-INST-14",
2026-06-19T05:17:21.5948568Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-19T05:17:21.5948802Z       "requiredStages": [
2026-06-19T05:17:21.5948882Z         "doc",
2026-06-19T05:17:21.5949054Z         "impl",
2026-06-19T05:17:21.5949136Z         "unit"
2026-06-19T05:17:21.5949216Z       ],
2026-06-19T05:17:21.5949297Z       "stages": {
2026-06-19T05:17:21.5949408Z         "doc": {
2026-06-19T05:17:21.5949498Z           "complete": true,
2026-06-19T05:17:21.5949588Z           "evidence": [
2026-06-19T05:17:21.5949669Z             {
2026-06-19T05:17:21.5949855Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.5949941Z               "line": 585
2026-06-19T05:17:21.5950028Z             },
2026-06-19T05:17:21.5950114Z             {
2026-06-19T05:17:21.5950212Z               "path": "docs/STORAGE.md",
2026-06-19T05:17:21.5950302Z               "line": 49
2026-06-19T05:17:21.5950388Z             }
2026-06-19T05:17:21.5950468Z           ]
2026-06-19T05:17:21.5950553Z         },
2026-06-19T05:17:21.5950638Z         "impl": {
2026-06-19T05:17:21.5950739Z           "complete": true,
2026-06-19T05:17:21.5950820Z           "evidence": [
2026-06-19T05:17:21.5950905Z             {
2026-06-19T05:17:21.5951035Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5951120Z               "line": 410
2026-06-19T05:17:21.5951205Z             },
2026-06-19T05:17:21.5951296Z             {
2026-06-19T05:17:21.5951416Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5951497Z               "line": 367
2026-06-19T05:17:21.5951582Z             },
2026-06-19T05:17:21.5951669Z             {
2026-06-19T05:17:21.5951788Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5951868Z               "line": 281
2026-06-19T05:17:21.5951950Z             },
2026-06-19T05:17:21.5952036Z             {
2026-06-19T05:17:21.5952145Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5952231Z               "line": 1470
2026-06-19T05:17:21.5952318Z             }
2026-06-19T05:17:21.5952402Z           ]
2026-06-19T05:17:21.5952489Z         },
2026-06-19T05:17:21.5952570Z         "int": {
2026-06-19T05:17:21.5952671Z           "complete": false,
2026-06-19T05:17:21.5952745Z           "evidence": []
2026-06-19T05:17:21.5952832Z         },
2026-06-19T05:17:21.5952919Z         "unit": {
2026-06-19T05:17:21.5953000Z           "complete": true,
2026-06-19T05:17:21.5953093Z           "evidence": [
2026-06-19T05:17:21.5953178Z             {
2026-06-19T05:17:21.5953308Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5953394Z               "line": 1163
2026-06-19T05:17:21.5953479Z             },
2026-06-19T05:17:21.5953565Z             {
2026-06-19T05:17:21.5953680Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5953760Z               "line": 944
2026-06-19T05:17:21.5953841Z             },
2026-06-19T05:17:21.5953928Z             {
2026-06-19T05:17:21.5954033Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5954132Z               "line": 1205
2026-06-19T05:17:21.5954214Z             },
2026-06-19T05:17:21.5954295Z             {
2026-06-19T05:17:21.5954400Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5954485Z               "line": 633
2026-06-19T05:17:21.5954568Z             },
2026-06-19T05:17:21.5954652Z             {
2026-06-19T05:17:21.5954762Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5954854Z               "line": 7927
2026-06-19T05:17:21.5954929Z             }
2026-06-19T05:17:21.5955015Z           ]
2026-06-19T05:17:21.5955096Z         }
2026-06-19T05:17:21.5955183Z       }
2026-06-19T05:17:21.5955268Z     },
2026-06-19T05:17:21.5955353Z     {
2026-06-19T05:17:21.5955452Z       "id": "REQ-INST-15",
2026-06-19T05:17:21.5956142Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-19T05:17:21.5956360Z       "requiredStages": [
2026-06-19T05:17:21.5956447Z         "doc",
2026-06-19T05:17:21.5956533Z         "impl",
2026-06-19T05:17:21.5956618Z         "unit"
2026-06-19T05:17:21.5956703Z       ],
2026-06-19T05:17:21.5956786Z       "stages": {
2026-06-19T05:17:21.5956872Z         "doc": {
2026-06-19T05:17:21.5956971Z           "complete": true,
2026-06-19T05:17:21.5957057Z           "evidence": [
2026-06-19T05:17:21.5957224Z             {
2026-06-19T05:17:21.5957401Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-19T05:17:21.5957487Z               "line": 3
2026-06-19T05:17:21.5957576Z             }
2026-06-19T05:17:21.5957657Z           ]
2026-06-19T05:17:21.5957736Z         },
2026-06-19T05:17:21.5957816Z         "impl": {
2026-06-19T05:17:21.5957915Z           "complete": true,
2026-06-19T05:17:21.5958002Z           "evidence": [
2026-06-19T05:17:21.5958078Z             {
2026-06-19T05:17:21.5958210Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5958295Z               "line": 353
2026-06-19T05:17:21.5958386Z             },
2026-06-19T05:17:21.5958467Z             {
2026-06-19T05:17:21.5958584Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.5958675Z               "line": 60
2026-06-19T05:17:21.5958752Z             },
2026-06-19T05:17:21.5958838Z             {
2026-06-19T05:17:21.5959028Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5959128Z               "line": 368
2026-06-19T05:17:21.5959204Z             },
2026-06-19T05:17:21.5959285Z             {
2026-06-19T05:17:21.5959429Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5959510Z               "line": 417
2026-06-19T05:17:21.5959600Z             },
2026-06-19T05:17:21.5959686Z             {
2026-06-19T05:17:21.5959805Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5959905Z               "line": 19
2026-06-19T05:17:21.5959987Z             },
2026-06-19T05:17:21.5960072Z             {
2026-06-19T05:17:21.5960177Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5960263Z               "line": 70
2026-06-19T05:17:21.5960345Z             },
2026-06-19T05:17:21.5960429Z             {
2026-06-19T05:17:21.5960534Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5960617Z               "line": 96
2026-06-19T05:17:21.5960702Z             },
2026-06-19T05:17:21.5960786Z             {
2026-06-19T05:17:21.5960895Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5960986Z               "line": 121
2026-06-19T05:17:21.5961066Z             },
2026-06-19T05:17:21.5961146Z             {
2026-06-19T05:17:21.5961256Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5961347Z               "line": 172
2026-06-19T05:17:21.5961427Z             },
2026-06-19T05:17:21.5961522Z             {
2026-06-19T05:17:21.5961647Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5961742Z               "line": 174
2026-06-19T05:17:21.5961828Z             },
2026-06-19T05:17:21.5961905Z             {
2026-06-19T05:17:21.5962014Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5962099Z               "line": 1362
2026-06-19T05:17:21.5962186Z             }
2026-06-19T05:17:21.5962263Z           ]
2026-06-19T05:17:21.5962357Z         },
2026-06-19T05:17:21.5962433Z         "int": {
2026-06-19T05:17:21.5962525Z           "complete": false,
2026-06-19T05:17:21.5962606Z           "evidence": []
2026-06-19T05:17:21.5962687Z         },
2026-06-19T05:17:21.5962777Z         "unit": {
2026-06-19T05:17:21.5962864Z           "complete": true,
2026-06-19T05:17:21.5962949Z           "evidence": [
2026-06-19T05:17:21.5963034Z             {
2026-06-19T05:17:21.5963159Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5963250Z               "line": 577
2026-06-19T05:17:21.5963435Z             },
2026-06-19T05:17:21.5963517Z             {
2026-06-19T05:17:21.5963644Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.5963734Z               "line": 638
2026-06-19T05:17:21.5963815Z             },
2026-06-19T05:17:21.5963902Z             {
2026-06-19T05:17:21.5964020Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5964101Z               "line": 213
2026-06-19T05:17:21.5964183Z             },
2026-06-19T05:17:21.5964359Z             {
2026-06-19T05:17:21.5964475Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5964560Z               "line": 249
2026-06-19T05:17:21.5964645Z             },
2026-06-19T05:17:21.5964731Z             {
2026-06-19T05:17:21.5964827Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5964917Z               "line": 262
2026-06-19T05:17:21.5964998Z             },
2026-06-19T05:17:21.5965084Z             {
2026-06-19T05:17:21.5965194Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:17:21.5965284Z               "line": 338
2026-06-19T05:17:21.5965365Z             },
2026-06-19T05:17:21.5965452Z             {
2026-06-19T05:17:21.5965570Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.5965665Z               "line": 659
2026-06-19T05:17:21.5965738Z             },
2026-06-19T05:17:21.5965818Z             {
2026-06-19T05:17:21.5965922Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5966017Z               "line": 7864
2026-06-19T05:17:21.5966098Z             },
2026-06-19T05:17:21.5966187Z             {
2026-06-19T05:17:21.5966296Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5966387Z               "line": 9642
2026-06-19T05:17:21.5966478Z             }
2026-06-19T05:17:21.5966564Z           ]
2026-06-19T05:17:21.5966639Z         }
2026-06-19T05:17:21.5966726Z       }
2026-06-19T05:17:21.5966812Z     },
2026-06-19T05:17:21.5966892Z     {
2026-06-19T05:17:21.5966988Z       "id": "REQ-INST-2",
2026-06-19T05:17:21.5967112Z       "title": "Per-node files, synced Psyche mind",
2026-06-19T05:17:21.5967202Z       "requiredStages": [
2026-06-19T05:17:21.5967288Z         "impl",
2026-06-19T05:17:21.5967374Z         "unit"
2026-06-19T05:17:21.5967460Z       ],
2026-06-19T05:17:21.5967545Z       "stages": {
2026-06-19T05:17:21.5967631Z         "doc": {
2026-06-19T05:17:21.5967727Z           "complete": false,
2026-06-19T05:17:21.5967822Z           "evidence": []
2026-06-19T05:17:21.5967907Z         },
2026-06-19T05:17:21.5967995Z         "impl": {
2026-06-19T05:17:21.5968089Z           "complete": true,
2026-06-19T05:17:21.5968171Z           "evidence": [
2026-06-19T05:17:21.5968247Z             {
2026-06-19T05:17:21.5968367Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5968451Z               "line": 108
2026-06-19T05:17:21.5968532Z             },
2026-06-19T05:17:21.5968615Z             {
2026-06-19T05:17:21.5968728Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5968822Z               "line": 28
2026-06-19T05:17:21.5968898Z             },
2026-06-19T05:17:21.5969059Z             {
2026-06-19T05:17:21.5969172Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5969264Z               "line": 74
2026-06-19T05:17:21.5969341Z             },
2026-06-19T05:17:21.5969440Z             {
2026-06-19T05:17:21.5969564Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5969660Z               "line": 96
2026-06-19T05:17:21.5969745Z             },
2026-06-19T05:17:21.5969826Z             {
2026-06-19T05:17:21.5969932Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.5970022Z               "line": 86
2026-06-19T05:17:21.5970098Z             },
2026-06-19T05:17:21.5970179Z             {
2026-06-19T05:17:21.5970285Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:17:21.5970385Z               "line": 118
2026-06-19T05:17:21.5970470Z             }
2026-06-19T05:17:21.5970656Z           ]
2026-06-19T05:17:21.5970742Z         },
2026-06-19T05:17:21.5970823Z         "int": {
2026-06-19T05:17:21.5970919Z           "complete": false,
2026-06-19T05:17:21.5971008Z           "evidence": []
2026-06-19T05:17:21.5971090Z         },
2026-06-19T05:17:21.5971172Z         "unit": {
2026-06-19T05:17:21.5971267Z           "complete": true,
2026-06-19T05:17:21.5971360Z           "evidence": [
2026-06-19T05:17:21.5971446Z             {
2026-06-19T05:17:21.5971556Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:17:21.5971730Z               "line": 250
2026-06-19T05:17:21.5971812Z             },
2026-06-19T05:17:21.5971893Z             {
2026-06-19T05:17:21.5972011Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.5972092Z               "line": 280
2026-06-19T05:17:21.5972184Z             }
2026-06-19T05:17:21.5972270Z           ]
2026-06-19T05:17:21.5972354Z         }
2026-06-19T05:17:21.5972436Z       }
2026-06-19T05:17:21.5972522Z     },
2026-06-19T05:17:21.5972608Z     {
2026-06-19T05:17:21.5972688Z       "id": "REQ-INST-3",
2026-06-19T05:17:21.5972837Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-19T05:17:21.5972937Z       "requiredStages": [
2026-06-19T05:17:21.5973017Z         "doc",
2026-06-19T05:17:21.5973104Z         "impl",
2026-06-19T05:17:21.5973190Z         "unit"
2026-06-19T05:17:21.5973275Z       ],
2026-06-19T05:17:21.5973361Z       "stages": {
2026-06-19T05:17:21.5973443Z         "doc": {
2026-06-19T05:17:21.5973546Z           "complete": true,
2026-06-19T05:17:21.5973632Z           "evidence": [
2026-06-19T05:17:21.5973715Z             {
2026-06-19T05:17:21.5973829Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-19T05:17:21.5973909Z               "line": 3
2026-06-19T05:17:21.5973996Z             }
2026-06-19T05:17:21.5974087Z           ]
2026-06-19T05:17:21.5974176Z         },
2026-06-19T05:17:21.5974266Z         "impl": {
2026-06-19T05:17:21.5974366Z           "complete": true,
2026-06-19T05:17:21.5974457Z           "evidence": [
2026-06-19T05:17:21.5974537Z             {
2026-06-19T05:17:21.5974656Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.5974744Z               "line": 59
2026-06-19T05:17:21.5974829Z             },
2026-06-19T05:17:21.5974914Z             {
2026-06-19T05:17:21.5975039Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.5975115Z               "line": 480
2026-06-19T05:17:21.5975195Z             },
2026-06-19T05:17:21.5975286Z             {
2026-06-19T05:17:21.5975411Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5975510Z               "line": 254
2026-06-19T05:17:21.5975591Z             },
2026-06-19T05:17:21.5975673Z             {
2026-06-19T05:17:21.5975782Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5975873Z               "line": 384
2026-06-19T05:17:21.5975955Z             },
2026-06-19T05:17:21.5976045Z             {
2026-06-19T05:17:21.5976168Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5976249Z               "line": 418
2026-06-19T05:17:21.5976337Z             },
2026-06-19T05:17:21.5976416Z             {
2026-06-19T05:17:21.5976539Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-19T05:17:21.5976630Z               "line": 74
2026-06-19T05:17:21.5976719Z             },
2026-06-19T05:17:21.5976809Z             {
2026-06-19T05:17:21.5976942Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5977039Z               "line": 234
2026-06-19T05:17:21.5977124Z             },
2026-06-19T05:17:21.5977204Z             {
2026-06-19T05:17:21.5977329Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5977424Z               "line": 396
2026-06-19T05:17:21.5977509Z             },
2026-06-19T05:17:21.5977582Z             {
2026-06-19T05:17:21.5977706Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5977882Z               "line": 45
2026-06-19T05:17:21.5977968Z             },
2026-06-19T05:17:21.5978044Z             {
2026-06-19T05:17:21.5978163Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5978250Z               "line": 114
2026-06-19T05:17:21.5978335Z             },
2026-06-19T05:17:21.5978416Z             {
2026-06-19T05:17:21.5978531Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5978621Z               "line": 152
2026-06-19T05:17:21.5978773Z             },
2026-06-19T05:17:21.5978860Z             {
2026-06-19T05:17:21.5979040Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5979132Z               "line": 168
2026-06-19T05:17:21.5979213Z             },
2026-06-19T05:17:21.5979298Z             {
2026-06-19T05:17:21.5979415Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5979512Z               "line": 178
2026-06-19T05:17:21.5979596Z             },
2026-06-19T05:17:21.5979681Z             {
2026-06-19T05:17:21.5979785Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5979882Z               "line": 210
2026-06-19T05:17:21.5979967Z             },
2026-06-19T05:17:21.5980057Z             {
2026-06-19T05:17:21.5980177Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5980258Z               "line": 287
2026-06-19T05:17:21.5980353Z             },
2026-06-19T05:17:21.5980434Z             {
2026-06-19T05:17:21.5980549Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5980634Z               "line": 311
2026-06-19T05:17:21.5980725Z             },
2026-06-19T05:17:21.5980816Z             {
2026-06-19T05:17:21.5980935Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5981025Z               "line": 389
2026-06-19T05:17:21.5981108Z             },
2026-06-19T05:17:21.5981188Z             {
2026-06-19T05:17:21.5981292Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5981388Z               "line": 438
2026-06-19T05:17:21.5981489Z             },
2026-06-19T05:17:21.5981573Z             {
2026-06-19T05:17:21.5981684Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-19T05:17:21.5981775Z               "line": 37
2026-06-19T05:17:21.5981865Z             },
2026-06-19T05:17:21.5981954Z             {
2026-06-19T05:17:21.5982083Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5982172Z               "line": 62
2026-06-19T05:17:21.5982252Z             },
2026-06-19T05:17:21.5982337Z             {
2026-06-19T05:17:21.5982444Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5982543Z               "line": 267
2026-06-19T05:17:21.5982628Z             },
2026-06-19T05:17:21.5982720Z             {
2026-06-19T05:17:21.5982830Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5982919Z               "line": 1741
2026-06-19T05:17:21.5983006Z             }
2026-06-19T05:17:21.5983092Z           ]
2026-06-19T05:17:21.5983173Z         },
2026-06-19T05:17:21.5983258Z         "int": {
2026-06-19T05:17:21.5983345Z           "complete": false,
2026-06-19T05:17:21.5983435Z           "evidence": []
2026-06-19T05:17:21.5983521Z         },
2026-06-19T05:17:21.5983606Z         "unit": {
2026-06-19T05:17:21.5983698Z           "complete": true,
2026-06-19T05:17:21.5983787Z           "evidence": [
2026-06-19T05:17:21.5983868Z             {
2026-06-19T05:17:21.5983984Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.5984069Z               "line": 360
2026-06-19T05:17:21.5984150Z             },
2026-06-19T05:17:21.5984231Z             {
2026-06-19T05:17:21.5984352Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5984445Z               "line": 837
2026-06-19T05:17:21.5984531Z             },
2026-06-19T05:17:21.5984619Z             {
2026-06-19T05:17:21.5984737Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5984936Z               "line": 894
2026-06-19T05:17:21.5985022Z             },
2026-06-19T05:17:21.5985107Z             {
2026-06-19T05:17:21.5985226Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5985309Z               "line": 889
2026-06-19T05:17:21.5985394Z             },
2026-06-19T05:17:21.5985479Z             {
2026-06-19T05:17:21.5985585Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.5985665Z               "line": 1014
2026-06-19T05:17:21.5985841Z             },
2026-06-19T05:17:21.5985924Z             {
2026-06-19T05:17:21.5986047Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5986132Z               "line": 1264
2026-06-19T05:17:21.5986219Z             },
2026-06-19T05:17:21.5986304Z             {
2026-06-19T05:17:21.5986428Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.5986510Z               "line": 1405
2026-06-19T05:17:21.5986596Z             },
2026-06-19T05:17:21.5986685Z             {
2026-06-19T05:17:21.5986795Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5986883Z               "line": 449
2026-06-19T05:17:21.5986971Z             },
2026-06-19T05:17:21.5987062Z             {
2026-06-19T05:17:21.5987180Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5987275Z               "line": 485
2026-06-19T05:17:21.5987369Z             },
2026-06-19T05:17:21.5987454Z             {
2026-06-19T05:17:21.5987575Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5987655Z               "line": 540
2026-06-19T05:17:21.5987740Z             },
2026-06-19T05:17:21.5987817Z             {
2026-06-19T05:17:21.5987937Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5988022Z               "line": 697
2026-06-19T05:17:21.5988108Z             },
2026-06-19T05:17:21.5988194Z             {
2026-06-19T05:17:21.5988308Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5988403Z               "line": 931
2026-06-19T05:17:21.5988486Z             },
2026-06-19T05:17:21.5988580Z             {
2026-06-19T05:17:21.5988699Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5988781Z               "line": 945
2026-06-19T05:17:21.5988875Z             },
2026-06-19T05:17:21.5989028Z             {
2026-06-19T05:17:21.5989148Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.5989233Z               "line": 1290
2026-06-19T05:17:21.5989333Z             },
2026-06-19T05:17:21.5989420Z             {
2026-06-19T05:17:21.5989524Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.5989610Z               "line": 583
2026-06-19T05:17:21.5989697Z             },
2026-06-19T05:17:21.5989783Z             {
2026-06-19T05:17:21.5989891Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.5989971Z               "line": 7888
2026-06-19T05:17:21.5990057Z             }
2026-06-19T05:17:21.5990137Z           ]
2026-06-19T05:17:21.5990236Z         }
2026-06-19T05:17:21.5990321Z       }
2026-06-19T05:17:21.5990408Z     },
2026-06-19T05:17:21.5990499Z     {
2026-06-19T05:17:21.5990589Z       "id": "REQ-INST-4",
2026-06-19T05:17:21.5990766Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-19T05:17:21.5990851Z       "requiredStages": [
2026-06-19T05:17:21.5990932Z         "impl",
2026-06-19T05:17:21.5991014Z         "unit"
2026-06-19T05:17:21.5991104Z       ],
2026-06-19T05:17:21.5991185Z       "stages": {
2026-06-19T05:17:21.5991270Z         "doc": {
2026-06-19T05:17:21.5991372Z           "complete": false,
2026-06-19T05:17:21.5991462Z           "evidence": []
2026-06-19T05:17:21.5991552Z         },
2026-06-19T05:17:21.5991638Z         "impl": {
2026-06-19T05:17:21.5991734Z           "complete": true,
2026-06-19T05:17:21.5991828Z           "evidence": [
2026-06-19T05:17:21.5991900Z             {
2026-06-19T05:17:21.5992025Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5992239Z               "line": 385
2026-06-19T05:17:21.5992317Z             },
2026-06-19T05:17:21.5992401Z             {
2026-06-19T05:17:21.5992528Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5992614Z               "line": 202
2026-06-19T05:17:21.5992700Z             },
2026-06-19T05:17:21.5992784Z             {
2026-06-19T05:17:21.5992898Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5993080Z               "line": 234
2026-06-19T05:17:21.5993155Z             },
2026-06-19T05:17:21.5993246Z             {
2026-06-19T05:17:21.5993361Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5993446Z               "line": 274
2026-06-19T05:17:21.5993527Z             }
2026-06-19T05:17:21.5993604Z           ]
2026-06-19T05:17:21.5993690Z         },
2026-06-19T05:17:21.5993771Z         "int": {
2026-06-19T05:17:21.5993871Z           "complete": false,
2026-06-19T05:17:21.5993971Z           "evidence": []
2026-06-19T05:17:21.5994057Z         },
2026-06-19T05:17:21.5994142Z         "unit": {
2026-06-19T05:17:21.5994225Z           "complete": true,
2026-06-19T05:17:21.5994324Z           "evidence": [
2026-06-19T05:17:21.5994405Z             {
2026-06-19T05:17:21.5994530Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.5994625Z               "line": 889
2026-06-19T05:17:21.5994695Z             },
2026-06-19T05:17:21.5994781Z             {
2026-06-19T05:17:21.5994892Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5994991Z               "line": 561
2026-06-19T05:17:21.5995072Z             },
2026-06-19T05:17:21.5995169Z             {
2026-06-19T05:17:21.5995287Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5995372Z               "line": 668
2026-06-19T05:17:21.5995457Z             },
2026-06-19T05:17:21.5995539Z             {
2026-06-19T05:17:21.5995663Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.5995748Z               "line": 750
2026-06-19T05:17:21.5995834Z             }
2026-06-19T05:17:21.5995925Z           ]
2026-06-19T05:17:21.5996010Z         }
2026-06-19T05:17:21.5996091Z       }
2026-06-19T05:17:21.5996179Z     },
2026-06-19T05:17:21.5996269Z     {
2026-06-19T05:17:21.5996358Z       "id": "REQ-INST-5",
2026-06-19T05:17:21.5996545Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-19T05:17:21.5996645Z       "requiredStages": [
2026-06-19T05:17:21.5996740Z         "impl",
2026-06-19T05:17:21.5996818Z         "unit",
2026-06-19T05:17:21.5996897Z         "int"
2026-06-19T05:17:21.5996993Z       ],
2026-06-19T05:17:21.5997080Z       "stages": {
2026-06-19T05:17:21.5997161Z         "doc": {
2026-06-19T05:17:21.5997255Z           "complete": false,
2026-06-19T05:17:21.5997336Z           "evidence": []
2026-06-19T05:17:21.5997418Z         },
2026-06-19T05:17:21.5997504Z         "impl": {
2026-06-19T05:17:21.5997607Z           "complete": true,
2026-06-19T05:17:21.5997687Z           "evidence": [
2026-06-19T05:17:21.5997769Z             {
2026-06-19T05:17:21.5997900Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-19T05:17:21.5997986Z               "line": 85
2026-06-19T05:17:21.5998067Z             },
2026-06-19T05:17:21.5998149Z             {
2026-06-19T05:17:21.5998272Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5998358Z               "line": 68
2026-06-19T05:17:21.5998444Z             },
2026-06-19T05:17:21.5998530Z             {
2026-06-19T05:17:21.5998630Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5998726Z               "line": 99
2026-06-19T05:17:21.5998816Z             },
2026-06-19T05:17:21.5998887Z             {
2026-06-19T05:17:21.5999084Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5999183Z               "line": 183
2026-06-19T05:17:21.5999264Z             },
2026-06-19T05:17:21.5999351Z             {
2026-06-19T05:17:21.5999617Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.5999699Z               "line": 314
2026-06-19T05:17:21.5999769Z             }
2026-06-19T05:17:21.5999855Z           ]
2026-06-19T05:17:21.5999942Z         },
2026-06-19T05:17:21.6000024Z         "int": {
2026-06-19T05:17:21.6000112Z           "complete": true,
2026-06-19T05:17:21.6000199Z           "evidence": [
2026-06-19T05:17:21.6000281Z             {
2026-06-19T05:17:21.6000408Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6000589Z               "line": 156
2026-06-19T05:17:21.6000675Z             },
2026-06-19T05:17:21.6000758Z             {
2026-06-19T05:17:21.6000876Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:17:21.6000968Z               "line": 145
2026-06-19T05:17:21.6001045Z             },
2026-06-19T05:17:21.6001125Z             {
2026-06-19T05:17:21.6001244Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6001345Z               "line": 706
2026-06-19T05:17:21.6001430Z             },
2026-06-19T05:17:21.6001515Z             {
2026-06-19T05:17:21.6001636Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6001712Z               "line": 1068
2026-06-19T05:17:21.6001807Z             }
2026-06-19T05:17:21.6001888Z           ]
2026-06-19T05:17:21.6001970Z         },
2026-06-19T05:17:21.6002060Z         "unit": {
2026-06-19T05:17:21.6002155Z           "complete": true,
2026-06-19T05:17:21.6002242Z           "evidence": [
2026-06-19T05:17:21.6002331Z             {
2026-06-19T05:17:21.6002441Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.6002523Z               "line": 552
2026-06-19T05:17:21.6002604Z             },
2026-06-19T05:17:21.6002694Z             {
2026-06-19T05:17:21.6002804Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.6002895Z               "line": 595
2026-06-19T05:17:21.6002980Z             },
2026-06-19T05:17:21.6003069Z             {
2026-06-19T05:17:21.6003194Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:17:21.6003278Z               "line": 219
2026-06-19T05:17:21.6003363Z             }
2026-06-19T05:17:21.6003448Z           ]
2026-06-19T05:17:21.6003539Z         }
2026-06-19T05:17:21.6003621Z       }
2026-06-19T05:17:21.6003706Z     },
2026-06-19T05:17:21.6003792Z     {
2026-06-19T05:17:21.6003883Z       "id": "REQ-INST-6",
2026-06-19T05:17:21.6004073Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-19T05:17:21.6004169Z       "requiredStages": [
2026-06-19T05:17:21.6004260Z         "impl",
2026-06-19T05:17:21.6004340Z         "unit",
2026-06-19T05:17:21.6004422Z         "int"
2026-06-19T05:17:21.6004498Z       ],
2026-06-19T05:17:21.6004593Z       "stages": {
2026-06-19T05:17:21.6004688Z         "doc": {
2026-06-19T05:17:21.6004775Z           "complete": true,
2026-06-19T05:17:21.6004875Z           "evidence": [
2026-06-19T05:17:21.6004961Z             {
2026-06-19T05:17:21.6005070Z               "path": "docs/DEFERRED.md",
2026-06-19T05:17:21.6005161Z               "line": 13
2026-06-19T05:17:21.6007659Z             }
2026-06-19T05:17:21.6007768Z           ]
2026-06-19T05:17:21.6007849Z         },
2026-06-19T05:17:21.6007944Z         "impl": {
2026-06-19T05:17:21.6008041Z           "complete": true,
2026-06-19T05:17:21.6008134Z           "evidence": [
2026-06-19T05:17:21.6008215Z             {
2026-06-19T05:17:21.6008344Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6008447Z               "line": 391
2026-06-19T05:17:21.6008537Z             },
2026-06-19T05:17:21.6008618Z             {
2026-06-19T05:17:21.6008748Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:17:21.6008842Z               "line": 27
2026-06-19T05:17:21.6008918Z             },
2026-06-19T05:17:21.6009081Z             {
2026-06-19T05:17:21.6009209Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:17:21.6009466Z               "line": 73
2026-06-19T05:17:21.6009548Z             },
2026-06-19T05:17:21.6009630Z             {
2026-06-19T05:17:21.6009753Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:17:21.6009839Z               "line": 182
2026-06-19T05:17:21.6009920Z             },
2026-06-19T05:17:21.6010001Z             {
2026-06-19T05:17:21.6010110Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.6010207Z               "line": 426
2026-06-19T05:17:21.6010401Z             },
2026-06-19T05:17:21.6010487Z             {
2026-06-19T05:17:21.6010603Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-19T05:17:21.6010682Z               "line": 31
2026-06-19T05:17:21.6010768Z             },
2026-06-19T05:17:21.6010851Z             {
2026-06-19T05:17:21.6010969Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6011049Z               "line": 202
2026-06-19T05:17:21.6011139Z             },
2026-06-19T05:17:21.6011230Z             {
2026-06-19T05:17:21.6011342Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.6011427Z               "line": 83
2026-06-19T05:17:21.6011509Z             },
2026-06-19T05:17:21.6011591Z             {
2026-06-19T05:17:21.6011690Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6011790Z               "line": 1742
2026-06-19T05:17:21.6011867Z             },
2026-06-19T05:17:21.6011953Z             {
2026-06-19T05:17:21.6012057Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6012139Z               "line": 179
2026-06-19T05:17:21.6012224Z             },
2026-06-19T05:17:21.6012305Z             {
2026-06-19T05:17:21.6012415Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6012511Z               "line": 215
2026-06-19T05:17:21.6012596Z             }
2026-06-19T05:17:21.6012682Z           ]
2026-06-19T05:17:21.6012759Z         },
2026-06-19T05:17:21.6012845Z         "int": {
2026-06-19T05:17:21.6012934Z           "complete": true,
2026-06-19T05:17:21.6013039Z           "evidence": [
2026-06-19T05:17:21.6013117Z             {
2026-06-19T05:17:21.6013234Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6013326Z               "line": 720
2026-06-19T05:17:21.6013408Z             },
2026-06-19T05:17:21.6013498Z             {
2026-06-19T05:17:21.6013611Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6013696Z               "line": 1113
2026-06-19T05:17:21.6013782Z             },
2026-06-19T05:17:21.6013866Z             {
2026-06-19T05:17:21.6013965Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6014052Z               "line": 726
2026-06-19T05:17:21.6014134Z             }
2026-06-19T05:17:21.6014209Z           ]
2026-06-19T05:17:21.6014294Z         },
2026-06-19T05:17:21.6014386Z         "unit": {
2026-06-19T05:17:21.6014477Z           "complete": true,
2026-06-19T05:17:21.6014571Z           "evidence": [
2026-06-19T05:17:21.6014652Z             {
2026-06-19T05:17:21.6014762Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6014853Z               "line": 661
2026-06-19T05:17:21.6014943Z             },
2026-06-19T05:17:21.6015026Z             {
2026-06-19T05:17:21.6015134Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.6015220Z               "line": 899
2026-06-19T05:17:21.6015306Z             },
2026-06-19T05:17:21.6015388Z             {
2026-06-19T05:17:21.6015501Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-19T05:17:21.6015601Z               "line": 66
2026-06-19T05:17:21.6015688Z             },
2026-06-19T05:17:21.6015768Z             {
2026-06-19T05:17:21.6015878Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6015965Z               "line": 297
2026-06-19T05:17:21.6016055Z             },
2026-06-19T05:17:21.6016145Z             {
2026-06-19T05:17:21.6016256Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.6016426Z               "line": 203
2026-06-19T05:17:21.6016511Z             }
2026-06-19T05:17:21.6016587Z           ]
2026-06-19T05:17:21.6016674Z         }
2026-06-19T05:17:21.6016755Z       }
2026-06-19T05:17:21.6016849Z     },
2026-06-19T05:17:21.6016931Z     {
2026-06-19T05:17:21.6017013Z       "id": "REQ-INST-7",
2026-06-19T05:17:21.6017154Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-19T05:17:21.6017251Z       "requiredStages": [
2026-06-19T05:17:21.6017341Z         "impl",
2026-06-19T05:17:21.6017497Z         "unit",
2026-06-19T05:17:21.6017580Z         "int"
2026-06-19T05:17:21.6017666Z       ],
2026-06-19T05:17:21.6017747Z       "stages": {
2026-06-19T05:17:21.6017822Z         "doc": {
2026-06-19T05:17:21.6017914Z           "complete": false,
2026-06-19T05:17:21.6017999Z           "evidence": []
2026-06-19T05:17:21.6018080Z         },
2026-06-19T05:17:21.6018161Z         "impl": {
2026-06-19T05:17:21.6018248Z           "complete": true,
2026-06-19T05:17:21.6018347Z           "evidence": [
2026-06-19T05:17:21.6018428Z             {
2026-06-19T05:17:21.6018553Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6018643Z               "line": 436
2026-06-19T05:17:21.6018727Z             },
2026-06-19T05:17:21.6018813Z             {
2026-06-19T05:17:21.6019021Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6019116Z               "line": 27
2026-06-19T05:17:21.6019192Z             },
2026-06-19T05:17:21.6019294Z             {
2026-06-19T05:17:21.6019416Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6019517Z               "line": 207
2026-06-19T05:17:21.6019593Z             },
2026-06-19T05:17:21.6019674Z             {
2026-06-19T05:17:21.6019793Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6019875Z               "line": 344
2026-06-19T05:17:21.6019956Z             },
2026-06-19T05:17:21.6020040Z             {
2026-06-19T05:17:21.6020166Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-19T05:17:21.6020246Z               "line": 59
2026-06-19T05:17:21.6020327Z             },
2026-06-19T05:17:21.6020417Z             {
2026-06-19T05:17:21.6020538Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6020633Z               "line": 41
2026-06-19T05:17:21.6020708Z             },
2026-06-19T05:17:21.6020795Z             {
2026-06-19T05:17:21.6020908Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6020999Z               "line": 27
2026-06-19T05:17:21.6021077Z             },
2026-06-19T05:17:21.6021158Z             {
2026-06-19T05:17:21.6021286Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6021367Z               "line": 119
2026-06-19T05:17:21.6021459Z             },
2026-06-19T05:17:21.6021548Z             {
2026-06-19T05:17:21.6021666Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6021752Z               "line": 134
2026-06-19T05:17:21.6021842Z             },
2026-06-19T05:17:21.6021926Z             {
2026-06-19T05:17:21.6022041Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:17:21.6022131Z               "line": 139
2026-06-19T05:17:21.6022212Z             }
2026-06-19T05:17:21.6022298Z           ]
2026-06-19T05:17:21.6022379Z         },
2026-06-19T05:17:21.6022460Z         "int": {
2026-06-19T05:17:21.6022555Z           "complete": true,
2026-06-19T05:17:21.6022636Z           "evidence": [
2026-06-19T05:17:21.6022723Z             {
2026-06-19T05:17:21.6022851Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:17:21.6022932Z               "line": 145
2026-06-19T05:17:21.6023028Z             },
2026-06-19T05:17:21.6023113Z             {
2026-06-19T05:17:21.6023237Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6023319Z               "line": 664
2026-06-19T05:17:21.6023410Z             },
2026-06-19T05:17:21.6023499Z             {
2026-06-19T05:17:21.6023720Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6023804Z               "line": 963
2026-06-19T05:17:21.6023891Z             }
2026-06-19T05:17:21.6023977Z           ]
2026-06-19T05:17:21.6024053Z         },
2026-06-19T05:17:21.6024133Z         "unit": {
2026-06-19T05:17:21.6024223Z           "complete": true,
2026-06-19T05:17:21.6024304Z           "evidence": [
2026-06-19T05:17:21.6024385Z             {
2026-06-19T05:17:21.6024516Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6024698Z               "line": 1134
2026-06-19T05:17:21.6024783Z             },
2026-06-19T05:17:21.6024869Z             {
2026-06-19T05:17:21.6024994Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6025080Z               "line": 1521
2026-06-19T05:17:21.6025165Z             },
2026-06-19T05:17:21.6025241Z             {
2026-06-19T05:17:21.6025361Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-19T05:17:21.6025451Z               "line": 84
2026-06-19T05:17:21.6025537Z             },
2026-06-19T05:17:21.6025624Z             {
2026-06-19T05:17:21.6025737Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6025818Z               "line": 812
2026-06-19T05:17:21.6025895Z             },
2026-06-19T05:17:21.6025980Z             {
2026-06-19T05:17:21.6026104Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6026181Z               "line": 823
2026-06-19T05:17:21.6026267Z             },
2026-06-19T05:17:21.6026352Z             {
2026-06-19T05:17:21.6026471Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6026559Z               "line": 838
2026-06-19T05:17:21.6026648Z             },
2026-06-19T05:17:21.6026734Z             {
2026-06-19T05:17:21.6026859Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6026953Z               "line": 166
2026-06-19T05:17:21.6027038Z             },
2026-06-19T05:17:21.6027128Z             {
2026-06-19T05:17:21.6027249Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6027338Z               "line": 181
2026-06-19T05:17:21.6027428Z             },
2026-06-19T05:17:21.6027501Z             {
2026-06-19T05:17:21.6027620Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6027710Z               "line": 214
2026-06-19T05:17:21.6027791Z             }
2026-06-19T05:17:21.6027878Z           ]
2026-06-19T05:17:21.6027959Z         }
2026-06-19T05:17:21.6028044Z       }
2026-06-19T05:17:21.6028125Z     },
2026-06-19T05:17:21.6028211Z     {
2026-06-19T05:17:21.6028307Z       "id": "REQ-INST-8",
2026-06-19T05:17:21.6028460Z       "title": "Remote-control mode distinct from local operation",
2026-06-19T05:17:21.6028559Z       "requiredStages": [
2026-06-19T05:17:21.6028640Z         "impl",
2026-06-19T05:17:21.6028731Z         "unit",
2026-06-19T05:17:21.6028808Z         "int"
2026-06-19T05:17:21.6028898Z       ],
2026-06-19T05:17:21.6029065Z       "stages": {
2026-06-19T05:17:21.6029147Z         "doc": {
2026-06-19T05:17:21.6029245Z           "complete": false,
2026-06-19T05:17:21.6029340Z           "evidence": []
2026-06-19T05:17:21.6029436Z         },
2026-06-19T05:17:21.6029516Z         "impl": {
2026-06-19T05:17:21.6029614Z           "complete": true,
2026-06-19T05:17:21.6029704Z           "evidence": [
2026-06-19T05:17:21.6029781Z             {
2026-06-19T05:17:21.6029901Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.6029995Z               "line": 104
2026-06-19T05:17:21.6030077Z             },
2026-06-19T05:17:21.6030158Z             {
2026-06-19T05:17:21.6030281Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.6030363Z               "line": 321
2026-06-19T05:17:21.6030445Z             },
2026-06-19T05:17:21.6030521Z             {
2026-06-19T05:17:21.6030639Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.6030825Z               "line": 361
2026-06-19T05:17:21.6030915Z             },
2026-06-19T05:17:21.6031007Z             {
2026-06-19T05:17:21.6031116Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6031212Z               "line": 62
2026-06-19T05:17:21.6031298Z             }
2026-06-19T05:17:21.6031379Z           ]
2026-06-19T05:17:21.6031464Z         },
2026-06-19T05:17:21.6031555Z         "int": {
2026-06-19T05:17:21.6031642Z           "complete": true,
2026-06-19T05:17:21.6031821Z           "evidence": [
2026-06-19T05:17:21.6031908Z             {
2026-06-19T05:17:21.6032028Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6032122Z               "line": 415
2026-06-19T05:17:21.6032193Z             },
2026-06-19T05:17:21.6032279Z             {
2026-06-19T05:17:21.6032406Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6032500Z               "line": 1027
2026-06-19T05:17:21.6032581Z             }
2026-06-19T05:17:21.6032668Z           ]
2026-06-19T05:17:21.6032754Z         },
2026-06-19T05:17:21.6032834Z         "unit": {
2026-06-19T05:17:21.6032925Z           "complete": true,
2026-06-19T05:17:21.6033011Z           "evidence": [
2026-06-19T05:17:21.6033088Z             {
2026-06-19T05:17:21.6033206Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6033293Z               "line": 365
2026-06-19T05:17:21.6033388Z             },
2026-06-19T05:17:21.6033468Z             {
2026-06-19T05:17:21.6033588Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6033669Z               "line": 630
2026-06-19T05:17:21.6033755Z             },
2026-06-19T05:17:21.6033836Z             {
2026-06-19T05:17:21.6033960Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6034040Z               "line": 116
2026-06-19T05:17:21.6034126Z             },
2026-06-19T05:17:21.6034209Z             {
2026-06-19T05:17:21.6034327Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6034417Z               "line": 160
2026-06-19T05:17:21.6034509Z             }
2026-06-19T05:17:21.6034595Z           ]
2026-06-19T05:17:21.6034674Z         }
2026-06-19T05:17:21.6034755Z       }
2026-06-19T05:17:21.6034841Z     },
2026-06-19T05:17:21.6034922Z     {
2026-06-19T05:17:21.6035005Z       "id": "REQ-INST-9",
2026-06-19T05:17:21.6035191Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-19T05:17:21.6035292Z       "requiredStages": [
2026-06-19T05:17:21.6035381Z         "impl",
2026-06-19T05:17:21.6035463Z         "unit"
2026-06-19T05:17:21.6035550Z       ],
2026-06-19T05:17:21.6035640Z       "stages": {
2026-06-19T05:17:21.6035720Z         "doc": {
2026-06-19T05:17:21.6035816Z           "complete": false,
2026-06-19T05:17:21.6035911Z           "evidence": []
2026-06-19T05:17:21.6035997Z         },
2026-06-19T05:17:21.6036087Z         "impl": {
2026-06-19T05:17:21.6036179Z           "complete": true,
2026-06-19T05:17:21.6036273Z           "evidence": [
2026-06-19T05:17:21.6036359Z             {
2026-06-19T05:17:21.6036485Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6036574Z               "line": 449
2026-06-19T05:17:21.6036659Z             }
2026-06-19T05:17:21.6036741Z           ]
2026-06-19T05:17:21.6036828Z         },
2026-06-19T05:17:21.6036903Z         "int": {
2026-06-19T05:17:21.6036998Z           "complete": false,
2026-06-19T05:17:21.6037119Z           "evidence": []
2026-06-19T05:17:21.6037203Z         },
2026-06-19T05:17:21.6037289Z         "unit": {
2026-06-19T05:17:21.6037371Z           "complete": true,
2026-06-19T05:17:21.6037458Z           "evidence": [
2026-06-19T05:17:21.6037537Z             {
2026-06-19T05:17:21.6037659Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6037751Z               "line": 1397
2026-06-19T05:17:21.6037842Z             },
2026-06-19T05:17:21.6037922Z             {
2026-06-19T05:17:21.6038041Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6038209Z               "line": 1406
2026-06-19T05:17:21.6038289Z             },
2026-06-19T05:17:21.6038371Z             {
2026-06-19T05:17:21.6038490Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6038580Z               "line": 1422
2026-06-19T05:17:21.6038662Z             },
2026-06-19T05:17:21.6038752Z             {
2026-06-19T05:17:21.6038871Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6039129Z               "line": 1434
2026-06-19T05:17:21.6039210Z             },
2026-06-19T05:17:21.6039301Z             {
2026-06-19T05:17:21.6039434Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6039524Z               "line": 1454
2026-06-19T05:17:21.6039615Z             }
2026-06-19T05:17:21.6039697Z           ]
2026-06-19T05:17:21.6039786Z         }
2026-06-19T05:17:21.6039871Z       }
2026-06-19T05:17:21.6039962Z     },
2026-06-19T05:17:21.6040052Z     {
2026-06-19T05:17:21.6040151Z       "id": "REQ-INSTALL-1",
2026-06-19T05:17:21.6040346Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-19T05:17:21.6040433Z       "requiredStages": [
2026-06-19T05:17:21.6040517Z         "doc",
2026-06-19T05:17:21.6040594Z         "impl",
2026-06-19T05:17:21.6040676Z         "int"
2026-06-19T05:17:21.6040756Z       ],
2026-06-19T05:17:21.6040846Z       "stages": {
2026-06-19T05:17:21.6040933Z         "doc": {
2026-06-19T05:17:21.6041019Z           "complete": true,
2026-06-19T05:17:21.6041104Z           "evidence": [
2026-06-19T05:17:21.6041189Z             {
2026-06-19T05:17:21.6041286Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6041381Z               "line": 751
2026-06-19T05:17:21.6041466Z             }
2026-06-19T05:17:21.6041557Z           ]
2026-06-19T05:17:21.6041634Z         },
2026-06-19T05:17:21.6041719Z         "impl": {
2026-06-19T05:17:21.6041805Z           "complete": true,
2026-06-19T05:17:21.6041897Z           "evidence": [
2026-06-19T05:17:21.6041982Z             {
2026-06-19T05:17:21.6042087Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6042173Z               "line": 57
2026-06-19T05:17:21.6042264Z             },
2026-06-19T05:17:21.6042339Z             {
2026-06-19T05:17:21.6042439Z               "path": "installer/install.sh",
2026-06-19T05:17:21.6042536Z               "line": 52
2026-06-19T05:17:21.6042621Z             }
2026-06-19T05:17:21.6042706Z           ]
2026-06-19T05:17:21.6042786Z         },
2026-06-19T05:17:21.6042872Z         "int": {
2026-06-19T05:17:21.6042971Z           "complete": true,
2026-06-19T05:17:21.6043060Z           "evidence": [
2026-06-19T05:17:21.6043141Z             {
2026-06-19T05:17:21.6043271Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:17:21.6043366Z               "line": 21
2026-06-19T05:17:21.6043451Z             }
2026-06-19T05:17:21.6043538Z           ]
2026-06-19T05:17:21.6043619Z         },
2026-06-19T05:17:21.6043699Z         "unit": {
2026-06-19T05:17:21.6043800Z           "complete": false,
2026-06-19T05:17:21.6043886Z           "evidence": []
2026-06-19T05:17:21.6043972Z         }
2026-06-19T05:17:21.6044056Z       }
2026-06-19T05:17:21.6044129Z     },
2026-06-19T05:17:21.6044220Z     {
2026-06-19T05:17:21.6044320Z       "id": "REQ-INSTALL-10",
2026-06-19T05:17:21.6045670Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
2026-06-19T05:17:21.6045770Z       "requiredStages": [
2026-06-19T05:17:21.6045853Z         "impl",
2026-06-19T05:17:21.6045941Z         "unit"
2026-06-19T05:17:21.6046028Z       ],
2026-06-19T05:17:21.6046119Z       "stages": {
2026-06-19T05:17:21.6046323Z         "doc": {
2026-06-19T05:17:21.6046420Z           "complete": false,
2026-06-19T05:17:21.6046515Z           "evidence": []
2026-06-19T05:17:21.6046604Z         },
2026-06-19T05:17:21.6046696Z         "impl": {
2026-06-19T05:17:21.6046791Z           "complete": true,
2026-06-19T05:17:21.6046886Z           "evidence": [
2026-06-19T05:17:21.6046967Z             {
2026-06-19T05:17:21.6047069Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6047163Z               "line": 191
2026-06-19T05:17:21.6047350Z             }
2026-06-19T05:17:21.6047435Z           ]
2026-06-19T05:17:21.6047520Z         },
2026-06-19T05:17:21.6047616Z         "int": {
2026-06-19T05:17:21.6047708Z           "complete": false,
2026-06-19T05:17:21.6047796Z           "evidence": []
2026-06-19T05:17:21.6047878Z         },
2026-06-19T05:17:21.6047965Z         "unit": {
2026-06-19T05:17:21.6048065Z           "complete": true,
2026-06-19T05:17:21.6048144Z           "evidence": [
2026-06-19T05:17:21.6048243Z             {
2026-06-19T05:17:21.6048364Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:17:21.6048449Z               "line": 211
2026-06-19T05:17:21.6048530Z             }
2026-06-19T05:17:21.6048616Z           ]
2026-06-19T05:17:21.6048702Z         }
2026-06-19T05:17:21.6048783Z       }
2026-06-19T05:17:21.6048873Z     },
2026-06-19T05:17:21.6049050Z     {
2026-06-19T05:17:21.6049150Z       "id": "REQ-INSTALL-11",
2026-06-19T05:17:21.6050892Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
2026-06-19T05:17:21.6051001Z       "requiredStages": [
2026-06-19T05:17:21.6051082Z         "doc",
2026-06-19T05:17:21.6051168Z         "impl",
2026-06-19T05:17:21.6051245Z         "unit"
2026-06-19T05:17:21.6051330Z       ],
2026-06-19T05:17:21.6051416Z       "stages": {
2026-06-19T05:17:21.6051493Z         "doc": {
2026-06-19T05:17:21.6051593Z           "complete": true,
2026-06-19T05:17:21.6051678Z           "evidence": [
2026-06-19T05:17:21.6051769Z             {
2026-06-19T05:17:21.6051860Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6051955Z               "line": 138
2026-06-19T05:17:21.6052041Z             },
2026-06-19T05:17:21.6052122Z             {
2026-06-19T05:17:21.6052227Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.6052308Z               "line": 82
2026-06-19T05:17:21.6052393Z             }
2026-06-19T05:17:21.6052476Z           ]
2026-06-19T05:17:21.6052556Z         },
2026-06-19T05:17:21.6052637Z         "impl": {
2026-06-19T05:17:21.6052733Z           "complete": true,
2026-06-19T05:17:21.6052833Z           "evidence": [
2026-06-19T05:17:21.6052918Z             {
2026-06-19T05:17:21.6053043Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.6053129Z               "line": 223
2026-06-19T05:17:21.6053214Z             },
2026-06-19T05:17:21.6053298Z             {
2026-06-19T05:17:21.6053428Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.6053531Z               "line": 99
2026-06-19T05:17:21.6053611Z             },
2026-06-19T05:17:21.6053697Z             {
2026-06-19T05:17:21.6053817Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.6053917Z               "line": 117
2026-06-19T05:17:21.6053997Z             },
2026-06-19T05:17:21.6054089Z             {
2026-06-19T05:17:21.6054212Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:17:21.6054297Z               "line": 332
2026-06-19T05:17:21.6054489Z             },
2026-06-19T05:17:21.6054574Z             {
2026-06-19T05:17:21.6054689Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.6054780Z               "line": 88
2026-06-19T05:17:21.6054866Z             },
2026-06-19T05:17:21.6054956Z             {
2026-06-19T05:17:21.6055066Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.6055165Z               "line": 104
2026-06-19T05:17:21.6055251Z             },
2026-06-19T05:17:21.6055334Z             {
2026-06-19T05:17:21.6055547Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6055634Z               "line": 297
2026-06-19T05:17:21.6055715Z             },
2026-06-19T05:17:21.6055804Z             {
2026-06-19T05:17:21.6055922Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6056013Z               "line": 332
2026-06-19T05:17:21.6056107Z             },
2026-06-19T05:17:21.6056192Z             {
2026-06-19T05:17:21.6056316Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6056422Z               "line": 523
2026-06-19T05:17:21.6056506Z             },
2026-06-19T05:17:21.6056592Z             {
2026-06-19T05:17:21.6056707Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6056793Z               "line": 546
2026-06-19T05:17:21.6056874Z             },
2026-06-19T05:17:21.6056965Z             {
2026-06-19T05:17:21.6057084Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6057159Z               "line": 561
2026-06-19T05:17:21.6057252Z             },
2026-06-19T05:17:21.6057337Z             {
2026-06-19T05:17:21.6057451Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6057541Z               "line": 492
2026-06-19T05:17:21.6057624Z             }
2026-06-19T05:17:21.6057703Z           ]
2026-06-19T05:17:21.6057784Z         },
2026-06-19T05:17:21.6057876Z         "int": {
2026-06-19T05:17:21.6057976Z           "complete": false,
2026-06-19T05:17:21.6058066Z           "evidence": []
2026-06-19T05:17:21.6058147Z         },
2026-06-19T05:17:21.6058234Z         "unit": {
2026-06-19T05:17:21.6058333Z           "complete": true,
2026-06-19T05:17:21.6058419Z           "evidence": [
2026-06-19T05:17:21.6058516Z             {
2026-06-19T05:17:21.6058630Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6058723Z               "line": 799
2026-06-19T05:17:21.6058799Z             },
2026-06-19T05:17:21.6058881Z             {
2026-06-19T05:17:21.6059076Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6059157Z               "line": 811
2026-06-19T05:17:21.6059239Z             },
2026-06-19T05:17:21.6059320Z             {
2026-06-19T05:17:21.6059443Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6059530Z               "line": 820
2026-06-19T05:17:21.6059615Z             }
2026-06-19T05:17:21.6059700Z           ]
2026-06-19T05:17:21.6059782Z         }
2026-06-19T05:17:21.6059878Z       }
2026-06-19T05:17:21.6059958Z     },
2026-06-19T05:17:21.6060048Z     {
2026-06-19T05:17:21.6060145Z       "id": "REQ-INSTALL-12",
2026-06-19T05:17:21.6062726Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
2026-06-19T05:17:21.6062949Z       "requiredStages": [
2026-06-19T05:17:21.6063036Z         "doc",
2026-06-19T05:17:21.6063121Z         "impl",
2026-06-19T05:17:21.6063207Z         "unit",
2026-06-19T05:17:21.6063288Z         "int"
2026-06-19T05:17:21.6063375Z       ],
2026-06-19T05:17:21.6063459Z       "stages": {
2026-06-19T05:17:21.6063545Z         "doc": {
2026-06-19T05:17:21.6063646Z           "complete": true,
2026-06-19T05:17:21.6063732Z           "evidence": [
2026-06-19T05:17:21.6063916Z             {
2026-06-19T05:17:21.6064016Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6064105Z               "line": 185
2026-06-19T05:17:21.6064185Z             }
2026-06-19T05:17:21.6064262Z           ]
2026-06-19T05:17:21.6064353Z         },
2026-06-19T05:17:21.6064434Z         "impl": {
2026-06-19T05:17:21.6064528Z           "complete": true,
2026-06-19T05:17:21.6064610Z           "evidence": [
2026-06-19T05:17:21.6064697Z             {
2026-06-19T05:17:21.6064820Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6064915Z               "line": 27
2026-06-19T05:17:21.6064997Z             },
2026-06-19T05:17:21.6065083Z             {
2026-06-19T05:17:21.6065196Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6065288Z               "line": 223
2026-06-19T05:17:21.6065378Z             },
2026-06-19T05:17:21.6065464Z             {
2026-06-19T05:17:21.6065569Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6065664Z               "line": 5534
2026-06-19T05:17:21.6065744Z             }
2026-06-19T05:17:21.6065830Z           ]
2026-06-19T05:17:21.6065918Z         },
2026-06-19T05:17:21.6065998Z         "int": {
2026-06-19T05:17:21.6066083Z           "complete": true,
2026-06-19T05:17:21.6066179Z           "evidence": [
2026-06-19T05:17:21.6066275Z             {
2026-06-19T05:17:21.6066402Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-19T05:17:21.6066501Z               "line": 19
2026-06-19T05:17:21.6066587Z             }
2026-06-19T05:17:21.6066677Z           ]
2026-06-19T05:17:21.6066766Z         },
2026-06-19T05:17:21.6066853Z         "unit": {
2026-06-19T05:17:21.6066944Z           "complete": true,
2026-06-19T05:17:21.6067039Z           "evidence": [
2026-06-19T05:17:21.6067124Z             {
2026-06-19T05:17:21.6067244Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6067335Z               "line": 395
2026-06-19T05:17:21.6067414Z             },
2026-06-19T05:17:21.6067502Z             {
2026-06-19T05:17:21.6067630Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6067710Z               "line": 421
2026-06-19T05:17:21.6067802Z             },
2026-06-19T05:17:21.6067878Z             {
2026-06-19T05:17:21.6068002Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6068097Z               "line": 440
2026-06-19T05:17:21.6068174Z             },
2026-06-19T05:17:21.6068259Z             {
2026-06-19T05:17:21.6068373Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6068470Z               "line": 475
2026-06-19T05:17:21.6068550Z             },
2026-06-19T05:17:21.6068631Z             {
2026-06-19T05:17:21.6068736Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6068837Z               "line": 8470
2026-06-19T05:17:21.6068921Z             }
2026-06-19T05:17:21.6069071Z           ]
2026-06-19T05:17:21.6069157Z         }
2026-06-19T05:17:21.6069241Z       }
2026-06-19T05:17:21.6069331Z     },
2026-06-19T05:17:21.6069422Z     {
2026-06-19T05:17:21.6069518Z       "id": "REQ-INSTALL-2",
2026-06-19T05:17:21.6069640Z       "title": "Marketplace-repackaging-friendly install",
2026-06-19T05:17:21.6069727Z       "requiredStages": [
2026-06-19T05:17:21.6069804Z         "doc"
2026-06-19T05:17:21.6069889Z       ],
2026-06-19T05:17:21.6069969Z       "stages": {
2026-06-19T05:17:21.6070061Z         "doc": {
2026-06-19T05:17:21.6070147Z           "complete": true,
2026-06-19T05:17:21.6070366Z           "evidence": [
2026-06-19T05:17:21.6070447Z             {
2026-06-19T05:17:21.6070547Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6070628Z               "line": 752
2026-06-19T05:17:21.6070719Z             }
2026-06-19T05:17:21.6070814Z           ]
2026-06-19T05:17:21.6070890Z         },
2026-06-19T05:17:21.6070976Z         "impl": {
2026-06-19T05:17:21.6071063Z           "complete": false,
2026-06-19T05:17:21.6071156Z           "evidence": []
2026-06-19T05:17:21.6071339Z         },
2026-06-19T05:17:21.6071420Z         "int": {
2026-06-19T05:17:21.6071514Z           "complete": false,
2026-06-19T05:17:21.6071604Z           "evidence": []
2026-06-19T05:17:21.6071685Z         },
2026-06-19T05:17:21.6071761Z         "unit": {
2026-06-19T05:17:21.6071860Z           "complete": false,
2026-06-19T05:17:21.6071950Z           "evidence": []
2026-06-19T05:17:21.6072041Z         }
2026-06-19T05:17:21.6072127Z       }
2026-06-19T05:17:21.6072212Z     },
2026-06-19T05:17:21.6072303Z     {
2026-06-19T05:17:21.6072399Z       "id": "REQ-INSTALL-3",
2026-06-19T05:17:21.6072532Z       "title": "Idempotent + interactive-optional first run",
2026-06-19T05:17:21.6072618Z       "requiredStages": [
2026-06-19T05:17:21.6072704Z         "impl",
2026-06-19T05:17:21.6072784Z         "int"
2026-06-19T05:17:21.6072870Z       ],
2026-06-19T05:17:21.6072962Z       "stages": {
2026-06-19T05:17:21.6073047Z         "doc": {
2026-06-19T05:17:21.6073146Z           "complete": false,
2026-06-19T05:17:21.6073233Z           "evidence": []
2026-06-19T05:17:21.6073324Z         },
2026-06-19T05:17:21.6073405Z         "impl": {
2026-06-19T05:17:21.6073500Z           "complete": true,
2026-06-19T05:17:21.6073596Z           "evidence": [
2026-06-19T05:17:21.6073676Z             {
2026-06-19T05:17:21.6073790Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6073877Z               "line": 100
2026-06-19T05:17:21.6073963Z             },
2026-06-19T05:17:21.6074048Z             {
2026-06-19T05:17:21.6074158Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6074245Z               "line": 111
2026-06-19T05:17:21.6074329Z             },
2026-06-19T05:17:21.6074410Z             {
2026-06-19T05:17:21.6074514Z               "path": "installer/install.sh",
2026-06-19T05:17:21.6074614Z               "line": 79
2026-06-19T05:17:21.6074693Z             }
2026-06-19T05:17:21.6074778Z           ]
2026-06-19T05:17:21.6074865Z         },
2026-06-19T05:17:21.6074947Z         "int": {
2026-06-19T05:17:21.6077518Z           "complete": true,
2026-06-19T05:17:21.6077632Z           "evidence": [
2026-06-19T05:17:21.6077722Z             {
2026-06-19T05:17:21.6077856Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:17:21.6077946Z               "line": 167
2026-06-19T05:17:21.6078042Z             }
2026-06-19T05:17:21.6078128Z           ]
2026-06-19T05:17:21.6078214Z         },
2026-06-19T05:17:21.6078299Z         "unit": {
2026-06-19T05:17:21.6078400Z           "complete": false,
2026-06-19T05:17:21.6078505Z           "evidence": []
2026-06-19T05:17:21.6078590Z         }
2026-06-19T05:17:21.6078667Z       }
2026-06-19T05:17:21.6078749Z     },
2026-06-19T05:17:21.6078838Z     {
2026-06-19T05:17:21.6078933Z       "id": "REQ-INSTALL-4",
2026-06-19T05:17:21.6079636Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-19T05:17:21.6079740Z       "requiredStages": [
2026-06-19T05:17:21.6079815Z         "impl",
2026-06-19T05:17:21.6079900Z         "unit"
2026-06-19T05:17:21.6079982Z       ],
2026-06-19T05:17:21.6080073Z       "stages": {
2026-06-19T05:17:21.6080158Z         "doc": {
2026-06-19T05:17:21.6080253Z           "complete": false,
2026-06-19T05:17:21.6080340Z           "evidence": []
2026-06-19T05:17:21.6080416Z         },
2026-06-19T05:17:21.6080510Z         "impl": {
2026-06-19T05:17:21.6080730Z           "complete": true,
2026-06-19T05:17:21.6080820Z           "evidence": [
2026-06-19T05:17:21.6080907Z             {
2026-06-19T05:17:21.6081040Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.6081131Z               "line": 165
2026-06-19T05:17:21.6081212Z             },
2026-06-19T05:17:21.6081289Z             {
2026-06-19T05:17:21.6081417Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6081507Z               "line": 29
2026-06-19T05:17:21.6081684Z             },
2026-06-19T05:17:21.6081760Z             {
2026-06-19T05:17:21.6081885Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6081971Z               "line": 288
2026-06-19T05:17:21.6082055Z             },
2026-06-19T05:17:21.6082131Z             {
2026-06-19T05:17:21.6082250Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6082335Z               "line": 356
2026-06-19T05:17:21.6082420Z             },
2026-06-19T05:17:21.6082505Z             {
2026-06-19T05:17:21.6082620Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6082706Z               "line": 386
2026-06-19T05:17:21.6082791Z             },
2026-06-19T05:17:21.6082877Z             {
2026-06-19T05:17:21.6082997Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6083092Z               "line": 434
2026-06-19T05:17:21.6083173Z             },
2026-06-19T05:17:21.6083254Z             {
2026-06-19T05:17:21.6083368Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6083454Z               "line": 5253
2026-06-19T05:17:21.6083532Z             }
2026-06-19T05:17:21.6083602Z           ]
2026-06-19T05:17:21.6083688Z         },
2026-06-19T05:17:21.6083778Z         "int": {
2026-06-19T05:17:21.6083889Z           "complete": false,
2026-06-19T05:17:21.6083989Z           "evidence": []
2026-06-19T05:17:21.6084088Z         },
2026-06-19T05:17:21.6084199Z         "unit": {
2026-06-19T05:17:21.6084293Z           "complete": true,
2026-06-19T05:17:21.6084374Z           "evidence": [
2026-06-19T05:17:21.6084457Z             {
2026-06-19T05:17:21.6084584Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.6084670Z               "line": 375
2026-06-19T05:17:21.6084753Z             },
2026-06-19T05:17:21.6084834Z             {
2026-06-19T05:17:21.6084951Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6085045Z               "line": 808
2026-06-19T05:17:21.6085117Z             },
2026-06-19T05:17:21.6085207Z             {
2026-06-19T05:17:21.6085330Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6085415Z               "line": 849
2026-06-19T05:17:21.6085507Z             },
2026-06-19T05:17:21.6085587Z             {
2026-06-19T05:17:21.6085711Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6085802Z               "line": 869
2026-06-19T05:17:21.6085888Z             },
2026-06-19T05:17:21.6085973Z             {
2026-06-19T05:17:21.6086084Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6086184Z               "line": 8208
2026-06-19T05:17:21.6086264Z             }
2026-06-19T05:17:21.6086350Z           ]
2026-06-19T05:17:21.6086437Z         }
2026-06-19T05:17:21.6086517Z       }
2026-06-19T05:17:21.6086608Z     },
2026-06-19T05:17:21.6086694Z     {
2026-06-19T05:17:21.6086794Z       "id": "REQ-INSTALL-5",
2026-06-19T05:17:21.6087261Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-19T05:17:21.6087353Z       "requiredStages": [
2026-06-19T05:17:21.6087447Z         "impl",
2026-06-19T05:17:21.6087532Z         "int"
2026-06-19T05:17:21.6087622Z       ],
2026-06-19T05:17:21.6087708Z       "stages": {
2026-06-19T05:17:21.6087792Z         "doc": {
2026-06-19T05:17:21.6087891Z           "complete": false,
2026-06-19T05:17:21.6088055Z           "evidence": []
2026-06-19T05:17:21.6088140Z         },
2026-06-19T05:17:21.6088225Z         "impl": {
2026-06-19T05:17:21.6088322Z           "complete": true,
2026-06-19T05:17:21.6088412Z           "evidence": [
2026-06-19T05:17:21.6088497Z             {
2026-06-19T05:17:21.6088602Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6088683Z               "line": 5
2026-06-19T05:17:21.6088764Z             },
2026-06-19T05:17:21.6088850Z             {
2026-06-19T05:17:21.6089098Z               "path": "installer/install.sh",
2026-06-19T05:17:21.6089188Z               "line": 6
2026-06-19T05:17:21.6089271Z             }
2026-06-19T05:17:21.6089351Z           ]
2026-06-19T05:17:21.6089446Z         },
2026-06-19T05:17:21.6089537Z         "int": {
2026-06-19T05:17:21.6089628Z           "complete": true,
2026-06-19T05:17:21.6089727Z           "evidence": [
2026-06-19T05:17:21.6089799Z             {
2026-06-19T05:17:21.6089920Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:17:21.6090009Z               "line": 22
2026-06-19T05:17:21.6090090Z             }
2026-06-19T05:17:21.6090172Z           ]
2026-06-19T05:17:21.6090258Z         },
2026-06-19T05:17:21.6090347Z         "unit": {
2026-06-19T05:17:21.6090446Z           "complete": false,
2026-06-19T05:17:21.6090532Z           "evidence": []
2026-06-19T05:17:21.6090624Z         }
2026-06-19T05:17:21.6090699Z       }
2026-06-19T05:17:21.6090784Z     },
2026-06-19T05:17:21.6090867Z     {
2026-06-19T05:17:21.6090962Z       "id": "REQ-INSTALL-6",
2026-06-19T05:17:21.6092154Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-19T05:17:21.6092263Z       "requiredStages": [
2026-06-19T05:17:21.6092349Z         "impl",
2026-06-19T05:17:21.6092430Z         "unit"
2026-06-19T05:17:21.6092512Z       ],
2026-06-19T05:17:21.6092597Z       "stages": {
2026-06-19T05:17:21.6092682Z         "doc": {
2026-06-19T05:17:21.6092777Z           "complete": false,
2026-06-19T05:17:21.6092863Z           "evidence": []
2026-06-19T05:17:21.6092946Z         },
2026-06-19T05:17:21.6093027Z         "impl": {
2026-06-19T05:17:21.6093132Z           "complete": true,
2026-06-19T05:17:21.6093224Z           "evidence": [
2026-06-19T05:17:21.6093313Z             {
2026-06-19T05:17:21.6093437Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.6093523Z               "line": 61
2026-06-19T05:17:21.6093613Z             },
2026-06-19T05:17:21.6093695Z             {
2026-06-19T05:17:21.6093815Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.6093905Z               "line": 623
2026-06-19T05:17:21.6094000Z             },
2026-06-19T05:17:21.6094082Z             {
2026-06-19T05:17:21.6094201Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.6094281Z               "line": 191
2026-06-19T05:17:21.6094368Z             },
2026-06-19T05:17:21.6094454Z             {
2026-06-19T05:17:21.6094572Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.6094668Z               "line": 276
2026-06-19T05:17:21.6094740Z             },
2026-06-19T05:17:21.6094825Z             {
2026-06-19T05:17:21.6094934Z               "path": "crates/spt/src/main.rs",
2026-06-19T05:17:21.6095022Z               "line": 43
2026-06-19T05:17:21.6095103Z             },
2026-06-19T05:17:21.6095187Z             {
2026-06-19T05:17:21.6095293Z               "path": "installer/install.sh",
2026-06-19T05:17:21.6095384Z               "line": 104
2026-06-19T05:17:21.6095464Z             }
2026-06-19T05:17:21.6095559Z           ]
2026-06-19T05:17:21.6095640Z         },
2026-06-19T05:17:21.6095730Z         "int": {
2026-06-19T05:17:21.6095927Z           "complete": false,
2026-06-19T05:17:21.6096019Z           "evidence": []
2026-06-19T05:17:21.6096101Z         },
2026-06-19T05:17:21.6096180Z         "unit": {
2026-06-19T05:17:21.6096276Z           "complete": true,
2026-06-19T05:17:21.6096367Z           "evidence": [
2026-06-19T05:17:21.6096457Z             {
2026-06-19T05:17:21.6096576Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:17:21.6096659Z               "line": 894
2026-06-19T05:17:21.6096848Z             }
2026-06-19T05:17:21.6096930Z           ]
2026-06-19T05:17:21.6097020Z         }
2026-06-19T05:17:21.6097101Z       }
2026-06-19T05:17:21.6097187Z     },
2026-06-19T05:17:21.6097269Z     {
2026-06-19T05:17:21.6097368Z       "id": "REQ-INSTALL-7",
2026-06-19T05:17:21.6098451Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-19T05:17:21.6098562Z       "requiredStages": [
2026-06-19T05:17:21.6098644Z         "impl"
2026-06-19T05:17:21.6098724Z       ],
2026-06-19T05:17:21.6098809Z       "stages": {
2026-06-19T05:17:21.6098891Z         "doc": {
2026-06-19T05:17:21.6099071Z           "complete": false,
2026-06-19T05:17:21.6099158Z           "evidence": []
2026-06-19T05:17:21.6099248Z         },
2026-06-19T05:17:21.6099344Z         "impl": {
2026-06-19T05:17:21.6099448Z           "complete": true,
2026-06-19T05:17:21.6099544Z           "evidence": [
2026-06-19T05:17:21.6099634Z             {
2026-06-19T05:17:21.6099739Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6099831Z               "line": 3796
2026-06-19T05:17:21.6099906Z             },
2026-06-19T05:17:21.6099987Z             {
2026-06-19T05:17:21.6100087Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6100184Z               "line": 157
2026-06-19T05:17:21.6100273Z             }
2026-06-19T05:17:21.6100354Z           ]
2026-06-19T05:17:21.6100441Z         },
2026-06-19T05:17:21.6100517Z         "int": {
2026-06-19T05:17:21.6100616Z           "complete": false,
2026-06-19T05:17:21.6100702Z           "evidence": []
2026-06-19T05:17:21.6100780Z         },
2026-06-19T05:17:21.6100870Z         "unit": {
2026-06-19T05:17:21.6100964Z           "complete": false,
2026-06-19T05:17:21.6101059Z           "evidence": []
2026-06-19T05:17:21.6101145Z         }
2026-06-19T05:17:21.6101227Z       }
2026-06-19T05:17:21.6101307Z     },
2026-06-19T05:17:21.6101388Z     {
2026-06-19T05:17:21.6101484Z       "id": "REQ-INSTALL-8",
2026-06-19T05:17:21.6102499Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-19T05:17:21.6102608Z       "requiredStages": [
2026-06-19T05:17:21.6102696Z         "impl"
2026-06-19T05:17:21.6102776Z       ],
2026-06-19T05:17:21.6102861Z       "stages": {
2026-06-19T05:17:21.6102942Z         "doc": {
2026-06-19T05:17:21.6103039Z           "complete": false,
2026-06-19T05:17:21.6103133Z           "evidence": []
2026-06-19T05:17:21.6103223Z         },
2026-06-19T05:17:21.6103303Z         "impl": {
2026-06-19T05:17:21.6103394Z           "complete": true,
2026-06-19T05:17:21.6103483Z           "evidence": [
2026-06-19T05:17:21.6103564Z             {
2026-06-19T05:17:21.6103678Z               "path": "installer/install.ps1",
2026-06-19T05:17:21.6103760Z               "line": 184
2026-06-19T05:17:21.6103845Z             },
2026-06-19T05:17:21.6103931Z             {
2026-06-19T05:17:21.6104037Z               "path": "installer/install.sh",
2026-06-19T05:17:21.6104255Z               "line": 121
2026-06-19T05:17:21.6104342Z             }
2026-06-19T05:17:21.6104427Z           ]
2026-06-19T05:17:21.6104512Z         },
2026-06-19T05:17:21.6104594Z         "int": {
2026-06-19T05:17:21.6104680Z           "complete": false,
2026-06-19T05:17:21.6104771Z           "evidence": []
2026-06-19T05:17:21.6104850Z         },
2026-06-19T05:17:21.6104933Z         "unit": {
2026-06-19T05:17:21.6105028Z           "complete": false,
2026-06-19T05:17:21.6105204Z           "evidence": []
2026-06-19T05:17:21.6105291Z         }
2026-06-19T05:17:21.6105371Z       }
2026-06-19T05:17:21.6105462Z     },
2026-06-19T05:17:21.6105548Z     {
2026-06-19T05:17:21.6105644Z       "id": "REQ-INSTALL-9",
2026-06-19T05:17:21.6106831Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-19T05:17:21.6106941Z       "requiredStages": [
2026-06-19T05:17:21.6107018Z         "doc",
2026-06-19T05:17:21.6107098Z         "impl",
2026-06-19T05:17:21.6107180Z         "unit"
2026-06-19T05:17:21.6107266Z       ],
2026-06-19T05:17:21.6107356Z       "stages": {
2026-06-19T05:17:21.6107442Z         "doc": {
2026-06-19T05:17:21.6107543Z           "complete": true,
2026-06-19T05:17:21.6107632Z           "evidence": [
2026-06-19T05:17:21.6107723Z             {
2026-06-19T05:17:21.6107814Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6107909Z               "line": 768
2026-06-19T05:17:21.6107995Z             }
2026-06-19T05:17:21.6108071Z           ]
2026-06-19T05:17:21.6108148Z         },
2026-06-19T05:17:21.6108234Z         "impl": {
2026-06-19T05:17:21.6108324Z           "complete": true,
2026-06-19T05:17:21.6108415Z           "evidence": [
2026-06-19T05:17:21.6108497Z             {
2026-06-19T05:17:21.6108604Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6108699Z               "line": 2411
2026-06-19T05:17:21.6108780Z             },
2026-06-19T05:17:21.6108866Z             {
2026-06-19T05:17:21.6109040Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6109131Z               "line": 2435
2026-06-19T05:17:21.6109213Z             }
2026-06-19T05:17:21.6109302Z           ]
2026-06-19T05:17:21.6109393Z         },
2026-06-19T05:17:21.6109475Z         "int": {
2026-06-19T05:17:21.6109570Z           "complete": false,
2026-06-19T05:17:21.6109665Z           "evidence": []
2026-06-19T05:17:21.6109742Z         },
2026-06-19T05:17:21.6109823Z         "unit": {
2026-06-19T05:17:21.6109918Z           "complete": true,
2026-06-19T05:17:21.6110003Z           "evidence": [
2026-06-19T05:17:21.6110081Z             {
2026-06-19T05:17:21.6110190Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6110290Z               "line": 7448
2026-06-19T05:17:21.6110371Z             },
2026-06-19T05:17:21.6110448Z             {
2026-06-19T05:17:21.6110552Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6110647Z               "line": 8238
2026-06-19T05:17:21.6110730Z             }
2026-06-19T05:17:21.6110814Z           ]
2026-06-19T05:17:21.6110900Z         }
2026-06-19T05:17:21.6110982Z       }
2026-06-19T05:17:21.6111073Z     },
2026-06-19T05:17:21.6111147Z     {
2026-06-19T05:17:21.6111239Z       "id": "REQ-KICK-1",
2026-06-19T05:17:21.6113646Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-19T05:17:21.6113840Z       "requiredStages": [
2026-06-19T05:17:21.6114015Z         "doc",
2026-06-19T05:17:21.6114104Z         "impl",
2026-06-19T05:17:21.6114176Z         "unit",
2026-06-19T05:17:21.6114267Z         "int"
2026-06-19T05:17:21.6114349Z       ],
2026-06-19T05:17:21.6114433Z       "stages": {
2026-06-19T05:17:21.6114519Z         "doc": {
2026-06-19T05:17:21.6114616Z           "complete": true,
2026-06-19T05:17:21.6114701Z           "evidence": [
2026-06-19T05:17:21.6114781Z             {
2026-06-19T05:17:21.6114887Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6114973Z               "line": 342
2026-06-19T05:17:21.6115058Z             }
2026-06-19T05:17:21.6115140Z           ]
2026-06-19T05:17:21.6115221Z         },
2026-06-19T05:17:21.6115302Z         "impl": {
2026-06-19T05:17:21.6115401Z           "complete": true,
2026-06-19T05:17:21.6115483Z           "evidence": [
2026-06-19T05:17:21.6115560Z             {
2026-06-19T05:17:21.6115683Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6115764Z               "line": 41
2026-06-19T05:17:21.6115851Z             },
2026-06-19T05:17:21.6115946Z             {
2026-06-19T05:17:21.6116054Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6116138Z               "line": 181
2026-06-19T05:17:21.6116218Z             }
2026-06-19T05:17:21.6116298Z           ]
2026-06-19T05:17:21.6116374Z         },
2026-06-19T05:17:21.6116467Z         "int": {
2026-06-19T05:17:21.6116561Z           "complete": true,
2026-06-19T05:17:21.6116650Z           "evidence": [
2026-06-19T05:17:21.6116740Z             {
2026-06-19T05:17:21.6116864Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6116962Z               "line": 910
2026-06-19T05:17:21.6117043Z             }
2026-06-19T05:17:21.6117124Z           ]
2026-06-19T05:17:21.6117206Z         },
2026-06-19T05:17:21.6117286Z         "unit": {
2026-06-19T05:17:21.6117386Z           "complete": true,
2026-06-19T05:17:21.6117474Z           "evidence": [
2026-06-19T05:17:21.6117555Z             {
2026-06-19T05:17:21.6117677Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6117764Z               "line": 205
2026-06-19T05:17:21.6117854Z             }
2026-06-19T05:17:21.6117935Z           ]
2026-06-19T05:17:21.6118026Z         }
2026-06-19T05:17:21.6118108Z       }
2026-06-19T05:17:21.6118187Z     },
2026-06-19T05:17:21.6118273Z     {
2026-06-19T05:17:21.6118370Z       "id": "REQ-MANIFEST-1",
2026-06-19T05:17:21.6118545Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-19T05:17:21.6118655Z       "requiredStages": [
2026-06-19T05:17:21.6118737Z         "doc",
2026-06-19T05:17:21.6118822Z         "impl",
2026-06-19T05:17:21.6118908Z         "unit"
2026-06-19T05:17:21.6119071Z       ],
2026-06-19T05:17:21.6119169Z       "stages": {
2026-06-19T05:17:21.6119250Z         "doc": {
2026-06-19T05:17:21.6119336Z           "complete": true,
2026-06-19T05:17:21.6119440Z           "evidence": [
2026-06-19T05:17:21.6119519Z             {
2026-06-19T05:17:21.6119634Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.6119720Z               "line": 19
2026-06-19T05:17:21.6119797Z             }
2026-06-19T05:17:21.6119886Z           ]
2026-06-19T05:17:21.6119973Z         },
2026-06-19T05:17:21.6120059Z         "impl": {
2026-06-19T05:17:21.6120140Z           "complete": true,
2026-06-19T05:17:21.6120235Z           "evidence": [
2026-06-19T05:17:21.6120317Z             {
2026-06-19T05:17:21.6120445Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6120636Z               "line": 18
2026-06-19T05:17:21.6120716Z             }
2026-06-19T05:17:21.6120807Z           ]
2026-06-19T05:17:21.6120888Z         },
2026-06-19T05:17:21.6120980Z         "int": {
2026-06-19T05:17:21.6121074Z           "complete": false,
2026-06-19T05:17:21.6121164Z           "evidence": []
2026-06-19T05:17:21.6121261Z         },
2026-06-19T05:17:21.6121346Z         "unit": {
2026-06-19T05:17:21.6121441Z           "complete": true,
2026-06-19T05:17:21.6121614Z           "evidence": [
2026-06-19T05:17:21.6121712Z             {
2026-06-19T05:17:21.6121828Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6121924Z               "line": 970
2026-06-19T05:17:21.6122009Z             },
2026-06-19T05:17:21.6122094Z             {
2026-06-19T05:17:21.6122222Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6122304Z               "line": 1122
2026-06-19T05:17:21.6122389Z             },
2026-06-19T05:17:21.6122474Z             {
2026-06-19T05:17:21.6122599Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6122699Z               "line": 1134
2026-06-19T05:17:21.6122780Z             },
2026-06-19T05:17:21.6122867Z             {
2026-06-19T05:17:21.6122981Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6123075Z               "line": 1145
2026-06-19T05:17:21.6123157Z             },
2026-06-19T05:17:21.6123243Z             {
2026-06-19T05:17:21.6123371Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6123467Z               "line": 1162
2026-06-19T05:17:21.6123549Z             },
2026-06-19T05:17:21.6123629Z             {
2026-06-19T05:17:21.6123752Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6123835Z               "line": 1176
2026-06-19T05:17:21.6123929Z             },
2026-06-19T05:17:21.6124024Z             {
2026-06-19T05:17:21.6124140Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6124235Z               "line": 1292
2026-06-19T05:17:21.6124315Z             },
2026-06-19T05:17:21.6124409Z             {
2026-06-19T05:17:21.6124529Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6124617Z               "line": 1307
2026-06-19T05:17:21.6124702Z             },
2026-06-19T05:17:21.6124789Z             {
2026-06-19T05:17:21.6124909Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6124994Z               "line": 1418
2026-06-19T05:17:21.6125079Z             },
2026-06-19T05:17:21.6125162Z             {
2026-06-19T05:17:21.6125285Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6125375Z               "line": 1429
2026-06-19T05:17:21.6125452Z             }
2026-06-19T05:17:21.6125538Z           ]
2026-06-19T05:17:21.6125618Z         }
2026-06-19T05:17:21.6125705Z       }
2026-06-19T05:17:21.6125781Z     },
2026-06-19T05:17:21.6125871Z     {
2026-06-19T05:17:21.6125976Z       "id": "REQ-MANIFEST-2",
2026-06-19T05:17:21.6126472Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-19T05:17:21.6126577Z       "requiredStages": [
2026-06-19T05:17:21.6126659Z         "doc",
2026-06-19T05:17:21.6126740Z         "impl",
2026-06-19T05:17:21.6126839Z         "unit"
2026-06-19T05:17:21.6126921Z       ],
2026-06-19T05:17:21.6127007Z       "stages": {
2026-06-19T05:17:21.6127098Z         "doc": {
2026-06-19T05:17:21.6127187Z           "complete": true,
2026-06-19T05:17:21.6127267Z           "evidence": [
2026-06-19T05:17:21.6127349Z             {
2026-06-19T05:17:21.6127452Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6127541Z               "line": 75
2026-06-19T05:17:21.6127632Z             }
2026-06-19T05:17:21.6127704Z           ]
2026-06-19T05:17:21.6127786Z         },
2026-06-19T05:17:21.6127870Z         "impl": {
2026-06-19T05:17:21.6128062Z           "complete": true,
2026-06-19T05:17:21.6128152Z           "evidence": [
2026-06-19T05:17:21.6128223Z             {
2026-06-19T05:17:21.6128353Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6128444Z               "line": 62
2026-06-19T05:17:21.6128528Z             },
2026-06-19T05:17:21.6128615Z             {
2026-06-19T05:17:21.6128743Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6128838Z               "line": 15
2026-06-19T05:17:21.6129086Z             },
2026-06-19T05:17:21.6129177Z             {
2026-06-19T05:17:21.6129292Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6129396Z               "line": 65
2026-06-19T05:17:21.6129477Z             },
2026-06-19T05:17:21.6129560Z             {
2026-06-19T05:17:21.6129688Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6129767Z               "line": 83
2026-06-19T05:17:21.6129852Z             },
2026-06-19T05:17:21.6129939Z             {
2026-06-19T05:17:21.6130061Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6130141Z               "line": 183
2026-06-19T05:17:21.6130228Z             },
2026-06-19T05:17:21.6130309Z             {
2026-06-19T05:17:21.6130427Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6130518Z               "line": 527
2026-06-19T05:17:21.6130605Z             },
2026-06-19T05:17:21.6130695Z             {
2026-06-19T05:17:21.6130818Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6130915Z               "line": 553
2026-06-19T05:17:21.6130996Z             },
2026-06-19T05:17:21.6131080Z             {
2026-06-19T05:17:21.6131206Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6131291Z               "line": 671
2026-06-19T05:17:21.6131376Z             },
2026-06-19T05:17:21.6131457Z             {
2026-06-19T05:17:21.6131587Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6131687Z               "line": 696
2026-06-19T05:17:21.6131763Z             },
2026-06-19T05:17:21.6131850Z             {
2026-06-19T05:17:21.6131967Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6132063Z               "line": 719
2026-06-19T05:17:21.6132145Z             },
2026-06-19T05:17:21.6132231Z             {
2026-06-19T05:17:21.6132359Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6132446Z               "line": 734
2026-06-19T05:17:21.6132532Z             },
2026-06-19T05:17:21.6132615Z             {
2026-06-19T05:17:21.6132729Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6132806Z               "line": 5424
2026-06-19T05:17:21.6132902Z             },
2026-06-19T05:17:21.6132992Z             {
2026-06-19T05:17:21.6133097Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6133183Z               "line": 5438
2026-06-19T05:17:21.6133268Z             },
2026-06-19T05:17:21.6133349Z             {
2026-06-19T05:17:21.6133451Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6133536Z               "line": 5472
2026-06-19T05:17:21.6133626Z             }
2026-06-19T05:17:21.6133698Z           ]
2026-06-19T05:17:21.6133780Z         },
2026-06-19T05:17:21.6133869Z         "int": {
2026-06-19T05:17:21.6133960Z           "complete": false,
2026-06-19T05:17:21.6134047Z           "evidence": []
2026-06-19T05:17:21.6134132Z         },
2026-06-19T05:17:21.6134227Z         "unit": {
2026-06-19T05:17:21.6134299Z           "complete": true,
2026-06-19T05:17:21.6134386Z           "evidence": [
2026-06-19T05:17:21.6134471Z             {
2026-06-19T05:17:21.6134594Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6134686Z               "line": 921
2026-06-19T05:17:21.6134767Z             },
2026-06-19T05:17:21.6134851Z             {
2026-06-19T05:17:21.6134974Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6135177Z               "line": 211
2026-06-19T05:17:21.6135262Z             },
2026-06-19T05:17:21.6135349Z             {
2026-06-19T05:17:21.6135474Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6135549Z               "line": 272
2026-06-19T05:17:21.6135635Z             },
2026-06-19T05:17:21.6135722Z             {
2026-06-19T05:17:21.6135840Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6135930Z               "line": 313
2026-06-19T05:17:21.6136112Z             },
2026-06-19T05:17:21.6136207Z             {
2026-06-19T05:17:21.6136328Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6136432Z               "line": 325
2026-06-19T05:17:21.6136517Z             },
2026-06-19T05:17:21.6136603Z             {
2026-06-19T05:17:21.6136717Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6136813Z               "line": 336
2026-06-19T05:17:21.6136904Z             },
2026-06-19T05:17:21.6136985Z             {
2026-06-19T05:17:21.6137108Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6137194Z               "line": 345
2026-06-19T05:17:21.6137282Z             },
2026-06-19T05:17:21.6137361Z             {
2026-06-19T05:17:21.6137486Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6137582Z               "line": 361
2026-06-19T05:17:21.6137653Z             },
2026-06-19T05:17:21.6137742Z             {
2026-06-19T05:17:21.6137861Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6137951Z               "line": 444
2026-06-19T05:17:21.6138031Z             },
2026-06-19T05:17:21.6138116Z             {
2026-06-19T05:17:21.6138236Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6138317Z               "line": 958
2026-06-19T05:17:21.6138402Z             },
2026-06-19T05:17:21.6138483Z             {
2026-06-19T05:17:21.6138603Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6138698Z               "line": 982
2026-06-19T05:17:21.6138788Z             },
2026-06-19T05:17:21.6138875Z             {
2026-06-19T05:17:21.6139055Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6139155Z               "line": 1008
2026-06-19T05:17:21.6139232Z             },
2026-06-19T05:17:21.6139322Z             {
2026-06-19T05:17:21.6139442Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6139528Z               "line": 1027
2026-06-19T05:17:21.6139623Z             },
2026-06-19T05:17:21.6139704Z             {
2026-06-19T05:17:21.6139829Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6139919Z               "line": 1058
2026-06-19T05:17:21.6140004Z             },
2026-06-19T05:17:21.6140086Z             {
2026-06-19T05:17:21.6140205Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.6140295Z               "line": 309
2026-06-19T05:17:21.6140384Z             },
2026-06-19T05:17:21.6140471Z             {
2026-06-19T05:17:21.6140574Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6140663Z               "line": 606
2026-06-19T05:17:21.6140754Z             },
2026-06-19T05:17:21.6140836Z             {
2026-06-19T05:17:21.6140936Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6141016Z               "line": 8415
2026-06-19T05:17:21.6141098Z             },
2026-06-19T05:17:21.6141184Z             {
2026-06-19T05:17:21.6141298Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6141383Z               "line": 9363
2026-06-19T05:17:21.6141461Z             }
2026-06-19T05:17:21.6141551Z           ]
2026-06-19T05:17:21.6141636Z         }
2026-06-19T05:17:21.6141723Z       }
2026-06-19T05:17:21.6141804Z     },
2026-06-19T05:17:21.6141894Z     {
2026-06-19T05:17:21.6141999Z       "id": "REQ-MANIFEST-3",
2026-06-19T05:17:21.6142619Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-19T05:17:21.6142819Z       "requiredStages": [
2026-06-19T05:17:21.6142905Z         "doc",
2026-06-19T05:17:21.6142992Z         "impl",
2026-06-19T05:17:21.6143078Z         "unit"
2026-06-19T05:17:21.6143166Z       ],
2026-06-19T05:17:21.6143266Z       "stages": {
2026-06-19T05:17:21.6143352Z         "doc": {
2026-06-19T05:17:21.6143449Z           "complete": true,
2026-06-19T05:17:21.6143623Z           "evidence": [
2026-06-19T05:17:21.6143706Z             {
2026-06-19T05:17:21.6143806Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6143886Z               "line": 81
2026-06-19T05:17:21.6143972Z             }
2026-06-19T05:17:21.6144053Z           ]
2026-06-19T05:17:21.6144139Z         },
2026-06-19T05:17:21.6144219Z         "impl": {
2026-06-19T05:17:21.6144316Z           "complete": true,
2026-06-19T05:17:21.6144406Z           "evidence": [
2026-06-19T05:17:21.6144500Z             {
2026-06-19T05:17:21.6144626Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6144711Z               "line": 72
2026-06-19T05:17:21.6144797Z             },
2026-06-19T05:17:21.6144883Z             {
2026-06-19T05:17:21.6145008Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6145092Z               "line": 101
2026-06-19T05:17:21.6145183Z             },
2026-06-19T05:17:21.6145265Z             {
2026-06-19T05:17:21.6145378Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6145468Z               "line": 132
2026-06-19T05:17:21.6145544Z             },
2026-06-19T05:17:21.6145626Z             {
2026-06-19T05:17:21.6145747Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6145837Z               "line": 577
2026-06-19T05:17:21.6145919Z             },
2026-06-19T05:17:21.6146006Z             {
2026-06-19T05:17:21.6146128Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6146219Z               "line": 633
2026-06-19T05:17:21.6146301Z             },
2026-06-19T05:17:21.6146391Z             {
2026-06-19T05:17:21.6146495Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6146592Z               "line": 5485
2026-06-19T05:17:21.6146682Z             },
2026-06-19T05:17:21.6146772Z             {
2026-06-19T05:17:21.6146873Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6146968Z               "line": 5511
2026-06-19T05:17:21.6147063Z             }
2026-06-19T05:17:21.6147149Z           ]
2026-06-19T05:17:21.6147245Z         },
2026-06-19T05:17:21.6147330Z         "int": {
2026-06-19T05:17:21.6149959Z           "complete": false,
2026-06-19T05:17:21.6150075Z           "evidence": []
2026-06-19T05:17:21.6150159Z         },
2026-06-19T05:17:21.6150245Z         "unit": {
2026-06-19T05:17:21.6150336Z           "complete": true,
2026-06-19T05:17:21.6150422Z           "evidence": [
2026-06-19T05:17:21.6150507Z             {
2026-06-19T05:17:21.6150656Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6150742Z               "line": 371
2026-06-19T05:17:21.6150827Z             },
2026-06-19T05:17:21.6150911Z             {
2026-06-19T05:17:21.6151036Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6151130Z               "line": 429
2026-06-19T05:17:21.6151205Z             },
2026-06-19T05:17:21.6151290Z             {
2026-06-19T05:17:21.6151406Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6151505Z               "line": 1082
2026-06-19T05:17:21.6151590Z             },
2026-06-19T05:17:21.6151673Z             {
2026-06-19T05:17:21.6151782Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6151863Z               "line": 8508
2026-06-19T05:17:21.6151948Z             }
2026-06-19T05:17:21.6152035Z           ]
2026-06-19T05:17:21.6152121Z         }
2026-06-19T05:17:21.6152205Z       }
2026-06-19T05:17:21.6152416Z     },
2026-06-19T05:17:21.6152497Z     {
2026-06-19T05:17:21.6152597Z       "id": "REQ-MANIFEST-4",
2026-06-19T05:17:21.6153318Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-19T05:17:21.6153417Z       "requiredStages": [
2026-06-19T05:17:21.6153503Z         "doc",
2026-06-19T05:17:21.6153595Z         "impl",
2026-06-19T05:17:21.6153783Z         "unit"
2026-06-19T05:17:21.6153869Z       ],
2026-06-19T05:17:21.6153956Z       "stages": {
2026-06-19T05:17:21.6154046Z         "doc": {
2026-06-19T05:17:21.6154141Z           "complete": true,
2026-06-19T05:17:21.6154227Z           "evidence": [
2026-06-19T05:17:21.6154313Z             {
2026-06-19T05:17:21.6154412Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6154498Z               "line": 88
2026-06-19T05:17:21.6154576Z             }
2026-06-19T05:17:21.6154671Z           ]
2026-06-19T05:17:21.6154751Z         },
2026-06-19T05:17:21.6154842Z         "impl": {
2026-06-19T05:17:21.6154938Z           "complete": true,
2026-06-19T05:17:21.6155024Z           "evidence": [
2026-06-19T05:17:21.6155114Z             {
2026-06-19T05:17:21.6155243Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6155338Z               "line": 80
2026-06-19T05:17:21.6155419Z             },
2026-06-19T05:17:21.6155501Z             {
2026-06-19T05:17:21.6155624Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6155709Z               "line": 163
2026-06-19T05:17:21.6155791Z             },
2026-06-19T05:17:21.6155873Z             {
2026-06-19T05:17:21.6155995Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.6156080Z               "line": 83
2026-06-19T05:17:21.6156166Z             },
2026-06-19T05:17:21.6156256Z             {
2026-06-19T05:17:21.6156374Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6156474Z               "line": 625
2026-06-19T05:17:21.6156561Z             },
2026-06-19T05:17:21.6156650Z             {
2026-06-19T05:17:21.6156775Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6156861Z               "line": 650
2026-06-19T05:17:21.6156946Z             }
2026-06-19T05:17:21.6157022Z           ]
2026-06-19T05:17:21.6157104Z         },
2026-06-19T05:17:21.6157189Z         "int": {
2026-06-19T05:17:21.6157289Z           "complete": false,
2026-06-19T05:17:21.6157375Z           "evidence": []
2026-06-19T05:17:21.6157467Z         },
2026-06-19T05:17:21.6157552Z         "unit": {
2026-06-19T05:17:21.6157632Z           "complete": true,
2026-06-19T05:17:21.6157733Z           "evidence": [
2026-06-19T05:17:21.6157819Z             {
2026-06-19T05:17:21.6157942Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6158029Z               "line": 1242
2026-06-19T05:17:21.6158116Z             },
2026-06-19T05:17:21.6158204Z             {
2026-06-19T05:17:21.6158324Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6158416Z               "line": 1275
2026-06-19T05:17:21.6158500Z             },
2026-06-19T05:17:21.6158582Z             {
2026-06-19T05:17:21.6158707Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6158796Z               "line": 984
2026-06-19T05:17:21.6158886Z             }
2026-06-19T05:17:21.6159029Z           ]
2026-06-19T05:17:21.6159123Z         }
2026-06-19T05:17:21.6159198Z       }
2026-06-19T05:17:21.6159274Z     },
2026-06-19T05:17:21.6159370Z     {
2026-06-19T05:17:21.6159480Z       "id": "REQ-MANIFEST-5",
2026-06-19T05:17:21.6162305Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-19T05:17:21.6162614Z       "requiredStages": [
2026-06-19T05:17:21.6162705Z         "doc",
2026-06-19T05:17:21.6162785Z         "impl",
2026-06-19T05:17:21.6162868Z         "unit"
2026-06-19T05:17:21.6162948Z       ],
2026-06-19T05:17:21.6163038Z       "stages": {
2026-06-19T05:17:21.6163124Z         "doc": {
2026-06-19T05:17:21.6163225Z           "complete": true,
2026-06-19T05:17:21.6163310Z           "evidence": [
2026-06-19T05:17:21.6163391Z             {
2026-06-19T05:17:21.6163492Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6163577Z               "line": 83
2026-06-19T05:17:21.6163667Z             }
2026-06-19T05:17:21.6163748Z           ]
2026-06-19T05:17:21.6163831Z         },
2026-06-19T05:17:21.6163916Z         "impl": {
2026-06-19T05:17:21.6164011Z           "complete": true,
2026-06-19T05:17:21.6164102Z           "evidence": [
2026-06-19T05:17:21.6164179Z             {
2026-06-19T05:17:21.6164301Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6164386Z               "line": 120
2026-06-19T05:17:21.6164468Z             }
2026-06-19T05:17:21.6164554Z           ]
2026-06-19T05:17:21.6164639Z         },
2026-06-19T05:17:21.6164715Z         "int": {
2026-06-19T05:17:21.6164806Z           "complete": false,
2026-06-19T05:17:21.6164897Z           "evidence": []
2026-06-19T05:17:21.6164982Z         },
2026-06-19T05:17:21.6165068Z         "unit": {
2026-06-19T05:17:21.6165155Z           "complete": true,
2026-06-19T05:17:21.6165241Z           "evidence": [
2026-06-19T05:17:21.6165320Z             {
2026-06-19T05:17:21.6165446Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:17:21.6165536Z               "line": 404
2026-06-19T05:17:21.6165612Z             },
2026-06-19T05:17:21.6165702Z             {
2026-06-19T05:17:21.6165827Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6165913Z               "line": 1155
2026-06-19T05:17:21.6165998Z             },
2026-06-19T05:17:21.6166085Z             {
2026-06-19T05:17:21.6166207Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6166293Z               "line": 1184
2026-06-19T05:17:21.6166381Z             },
2026-06-19T05:17:21.6166461Z             {
2026-06-19T05:17:21.6166584Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6166679Z               "line": 1224
2026-06-19T05:17:21.6166765Z             },
2026-06-19T05:17:21.6166858Z             {
2026-06-19T05:17:21.6166976Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6167068Z               "line": 1239
2026-06-19T05:17:21.6167159Z             }
2026-06-19T05:17:21.6167244Z           ]
2026-06-19T05:17:21.6167325Z         }
2026-06-19T05:17:21.6167412Z       }
2026-06-19T05:17:21.6167497Z     },
2026-06-19T05:17:21.6167577Z     {
2026-06-19T05:17:21.6167684Z       "id": "REQ-MANIFEST-6",
2026-06-19T05:17:21.6169843Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-19T05:17:21.6170059Z       "requiredStages": [
2026-06-19T05:17:21.6170149Z         "doc",
2026-06-19T05:17:21.6170226Z         "unit"
2026-06-19T05:17:21.6170312Z       ],
2026-06-19T05:17:21.6170401Z       "stages": {
2026-06-19T05:17:21.6170575Z         "doc": {
2026-06-19T05:17:21.6170665Z           "complete": true,
2026-06-19T05:17:21.6170745Z           "evidence": [
2026-06-19T05:17:21.6170836Z             {
2026-06-19T05:17:21.6170932Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6171031Z               "line": 141
2026-06-19T05:17:21.6171112Z             }
2026-06-19T05:17:21.6171190Z           ]
2026-06-19T05:17:21.6171279Z         },
2026-06-19T05:17:21.6171365Z         "impl": {
2026-06-19T05:17:21.6171456Z           "complete": false,
2026-06-19T05:17:21.6171552Z           "evidence": []
2026-06-19T05:17:21.6171641Z         },
2026-06-19T05:17:21.6171723Z         "int": {
2026-06-19T05:17:21.6171814Z           "complete": false,
2026-06-19T05:17:21.6171905Z           "evidence": []
2026-06-19T05:17:21.6171989Z         },
2026-06-19T05:17:21.6172079Z         "unit": {
2026-06-19T05:17:21.6172170Z           "complete": true,
2026-06-19T05:17:21.6172268Z           "evidence": [
2026-06-19T05:17:21.6172349Z             {
2026-06-19T05:17:21.6172473Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.6172560Z               "line": 1261
2026-06-19T05:17:21.6172645Z             }
2026-06-19T05:17:21.6172730Z           ]
2026-06-19T05:17:21.6172812Z         }
2026-06-19T05:17:21.6172898Z       }
2026-06-19T05:17:21.6172978Z     },
2026-06-19T05:17:21.6173059Z     {
2026-06-19T05:17:21.6173160Z       "id": "REQ-MANIFEST-7",
2026-06-19T05:17:21.6176105Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-19T05:17:21.6176219Z       "requiredStages": [
2026-06-19T05:17:21.6176302Z         "doc",
2026-06-19T05:17:21.6176397Z         "impl",
2026-06-19T05:17:21.6176478Z         "unit"
2026-06-19T05:17:21.6176568Z       ],
2026-06-19T05:17:21.6176654Z       "stages": {
2026-06-19T05:17:21.6176744Z         "doc": {
2026-06-19T05:17:21.6176840Z           "complete": true,
2026-06-19T05:17:21.6176931Z           "evidence": [
2026-06-19T05:17:21.6177021Z             {
2026-06-19T05:17:21.6177129Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.6177210Z               "line": 35
2026-06-19T05:17:21.6177286Z             }
2026-06-19T05:17:21.6177372Z           ]
2026-06-19T05:17:21.6177456Z         },
2026-06-19T05:17:21.6177532Z         "impl": {
2026-06-19T05:17:21.6177618Z           "complete": true,
2026-06-19T05:17:21.6177701Z           "evidence": [
2026-06-19T05:17:21.6177784Z             {
2026-06-19T05:17:21.6177905Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6177995Z               "line": 54
2026-06-19T05:17:21.6178076Z             }
2026-06-19T05:17:21.6178234Z           ]
2026-06-19T05:17:21.6178315Z         },
2026-06-19T05:17:21.6178395Z         "int": {
2026-06-19T05:17:21.6178491Z           "complete": false,
2026-06-19T05:17:21.6178577Z           "evidence": []
2026-06-19T05:17:21.6178667Z         },
2026-06-19T05:17:21.6178752Z         "unit": {
2026-06-19T05:17:21.6178849Z           "complete": true,
2026-06-19T05:17:21.6178940Z           "evidence": [
2026-06-19T05:17:21.6179101Z             {
2026-06-19T05:17:21.6179231Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6179415Z               "line": 1435
2026-06-19T05:17:21.6179494Z             }
2026-06-19T05:17:21.6179574Z           ]
2026-06-19T05:17:21.6179658Z         }
2026-06-19T05:17:21.6179750Z       }
2026-06-19T05:17:21.6179822Z     },
2026-06-19T05:17:21.6179908Z     {
2026-06-19T05:17:21.6180006Z       "id": "REQ-MANIFEST-8",
2026-06-19T05:17:21.6182145Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
2026-06-19T05:17:21.6182259Z       "requiredStages": [
2026-06-19T05:17:21.6182346Z         "doc",
2026-06-19T05:17:21.6182423Z         "impl",
2026-06-19T05:17:21.6182507Z         "unit",
2026-06-19T05:17:21.6182592Z         "int"
2026-06-19T05:17:21.6182678Z       ],
2026-06-19T05:17:21.6182749Z       "stages": {
2026-06-19T05:17:21.6182833Z         "doc": {
2026-06-19T05:17:21.6182933Z           "complete": true,
2026-06-19T05:17:21.6183018Z           "evidence": [
2026-06-19T05:17:21.6183105Z             {
2026-06-19T05:17:21.6183200Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6183295Z               "line": 184
2026-06-19T05:17:21.6183377Z             },
2026-06-19T05:17:21.6183458Z             {
2026-06-19T05:17:21.6183562Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.6183644Z               "line": 46
2026-06-19T05:17:21.6183729Z             }
2026-06-19T05:17:21.6183810Z           ]
2026-06-19T05:17:21.6183901Z         },
2026-06-19T05:17:21.6183988Z         "impl": {
2026-06-19T05:17:21.6184077Z           "complete": true,
2026-06-19T05:17:21.6184172Z           "evidence": [
2026-06-19T05:17:21.6184253Z             {
2026-06-19T05:17:21.6184378Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6184463Z               "line": 222
2026-06-19T05:17:21.6184544Z             },
2026-06-19T05:17:21.6184627Z             {
2026-06-19T05:17:21.6184745Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.6184835Z               "line": 306
2026-06-19T05:17:21.6184917Z             }
2026-06-19T05:17:21.6185008Z           ]
2026-06-19T05:17:21.6185088Z         },
2026-06-19T05:17:21.6185165Z         "int": {
2026-06-19T05:17:21.6185246Z           "complete": true,
2026-06-19T05:17:21.6185341Z           "evidence": [
2026-06-19T05:17:21.6185426Z             {
2026-06-19T05:17:21.6185545Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-19T05:17:21.6185641Z               "line": 18
2026-06-19T05:17:21.6185722Z             }
2026-06-19T05:17:21.6185802Z           ]
2026-06-19T05:17:21.6185883Z         },
2026-06-19T05:17:21.6185970Z         "unit": {
2026-06-19T05:17:21.6186055Z           "complete": true,
2026-06-19T05:17:21.6186135Z           "evidence": [
2026-06-19T05:17:21.6186223Z             {
2026-06-19T05:17:21.6186351Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6186446Z               "line": 1453
2026-06-19T05:17:21.6186637Z             },
2026-06-19T05:17:21.6186723Z             {
2026-06-19T05:17:21.6186852Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6186938Z               "line": 316
2026-06-19T05:17:21.6187028Z             },
2026-06-19T05:17:21.6187113Z             {
2026-06-19T05:17:21.6187234Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6187318Z               "line": 332
2026-06-19T05:17:21.6187400Z             },
2026-06-19T05:17:21.6187549Z             {
2026-06-19T05:17:21.6187666Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6187761Z               "line": 345
2026-06-19T05:17:21.6187842Z             },
2026-06-19T05:17:21.6187927Z             {
2026-06-19T05:17:21.6188030Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.6188126Z               "line": 422
2026-06-19T05:17:21.6188213Z             },
2026-06-19T05:17:21.6188298Z             {
2026-06-19T05:17:21.6188412Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:17:21.6188503Z               "line": 436
2026-06-19T05:17:21.6188589Z             }
2026-06-19T05:17:21.6188674Z           ]
2026-06-19T05:17:21.6188750Z         }
2026-06-19T05:17:21.6188837Z       }
2026-06-19T05:17:21.6188913Z     },
2026-06-19T05:17:21.6189075Z     {
2026-06-19T05:17:21.6189171Z       "id": "REQ-MESH-1",
2026-06-19T05:17:21.6191260Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-19T05:17:21.6191366Z       "requiredStages": [
2026-06-19T05:17:21.6191451Z         "impl",
2026-06-19T05:17:21.6191532Z         "unit",
2026-06-19T05:17:21.6191613Z         "int"
2026-06-19T05:17:21.6191695Z       ],
2026-06-19T05:17:21.6191775Z       "stages": {
2026-06-19T05:17:21.6191851Z         "doc": {
2026-06-19T05:17:21.6191951Z           "complete": false,
2026-06-19T05:17:21.6192043Z           "evidence": []
2026-06-19T05:17:21.6192128Z         },
2026-06-19T05:17:21.6192209Z         "impl": {
2026-06-19T05:17:21.6192310Z           "complete": true,
2026-06-19T05:17:21.6192386Z           "evidence": [
2026-06-19T05:17:21.6192471Z             {
2026-06-19T05:17:21.6192596Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6192682Z               "line": 922
2026-06-19T05:17:21.6192766Z             },
2026-06-19T05:17:21.6192853Z             {
2026-06-19T05:17:21.6192973Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6193062Z               "line": 38
2026-06-19T05:17:21.6193143Z             },
2026-06-19T05:17:21.6193233Z             {
2026-06-19T05:17:21.6193361Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6193455Z               "line": 161
2026-06-19T05:17:21.6193545Z             },
2026-06-19T05:17:21.6193622Z             {
2026-06-19T05:17:21.6193750Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6193836Z               "line": 206
2026-06-19T05:17:21.6193918Z             },
2026-06-19T05:17:21.6194003Z             {
2026-06-19T05:17:21.6194127Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6194223Z               "line": 57
2026-06-19T05:17:21.6194299Z             },
2026-06-19T05:17:21.6194385Z             {
2026-06-19T05:17:21.6194509Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6194723Z               "line": 24
2026-06-19T05:17:21.6194799Z             },
2026-06-19T05:17:21.6194896Z             {
2026-06-19T05:17:21.6195019Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6195105Z               "line": 142
2026-06-19T05:17:21.6195201Z             },
2026-06-19T05:17:21.6195281Z             {
2026-06-19T05:17:21.6195410Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6195591Z               "line": 162
2026-06-19T05:17:21.6195677Z             }
2026-06-19T05:17:21.6195763Z           ]
2026-06-19T05:17:21.6195845Z         },
2026-06-19T05:17:21.6195934Z         "int": {
2026-06-19T05:17:21.6196029Z           "complete": true,
2026-06-19T05:17:21.6196124Z           "evidence": [
2026-06-19T05:17:21.6196211Z             {
2026-06-19T05:17:21.6196343Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:17:21.6196429Z               "line": 67
2026-06-19T05:17:21.6196516Z             },
2026-06-19T05:17:21.6196611Z             {
2026-06-19T05:17:21.6196739Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:17:21.6196830Z               "line": 93
2026-06-19T05:17:21.6196907Z             },
2026-06-19T05:17:21.6196996Z             {
2026-06-19T05:17:21.6197117Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:17:21.6197212Z               "line": 117
2026-06-19T05:17:21.6197287Z             },
2026-06-19T05:17:21.6197373Z             {
2026-06-19T05:17:21.6197512Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:17:21.6197607Z               "line": 134
2026-06-19T05:17:21.6197688Z             }
2026-06-19T05:17:21.6197775Z           ]
2026-06-19T05:17:21.6197855Z         },
2026-06-19T05:17:21.6197941Z         "unit": {
2026-06-19T05:17:21.6198032Z           "complete": true,
2026-06-19T05:17:21.6198132Z           "evidence": [
2026-06-19T05:17:21.6198212Z             {
2026-06-19T05:17:21.6198340Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6198431Z               "line": 427
2026-06-19T05:17:21.6198510Z             },
2026-06-19T05:17:21.6198595Z             {
2026-06-19T05:17:21.6198725Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6198816Z               "line": 376
2026-06-19T05:17:21.6198896Z             },
2026-06-19T05:17:21.6199054Z             {
2026-06-19T05:17:21.6199177Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6199262Z               "line": 412
2026-06-19T05:17:21.6199345Z             },
2026-06-19T05:17:21.6199445Z             {
2026-06-19T05:17:21.6199577Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6199674Z               "line": 427
2026-06-19T05:17:21.6199764Z             },
2026-06-19T05:17:21.6199845Z             {
2026-06-19T05:17:21.6199974Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6200074Z               "line": 438
2026-06-19T05:17:21.6200150Z             },
2026-06-19T05:17:21.6200235Z             {
2026-06-19T05:17:21.6200356Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6200441Z               "line": 449
2026-06-19T05:17:21.6200531Z             },
2026-06-19T05:17:21.6200614Z             {
2026-06-19T05:17:21.6200736Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6200823Z               "line": 460
2026-06-19T05:17:21.6200909Z             },
2026-06-19T05:17:21.6201000Z             {
2026-06-19T05:17:21.6201126Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6201217Z               "line": 496
2026-06-19T05:17:21.6201298Z             },
2026-06-19T05:17:21.6201382Z             {
2026-06-19T05:17:21.6201510Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6201606Z               "line": 519
2026-06-19T05:17:21.6201800Z             },
2026-06-19T05:17:21.6201877Z             {
2026-06-19T05:17:21.6202006Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6202097Z               "line": 546
2026-06-19T05:17:21.6202173Z             }
2026-06-19T05:17:21.6202264Z           ]
2026-06-19T05:17:21.6202345Z         }
2026-06-19T05:17:21.6202435Z       }
2026-06-19T05:17:21.6202521Z     },
2026-06-19T05:17:21.6202613Z     {
2026-06-19T05:17:21.6202698Z       "id": "REQ-MESH-2",
2026-06-19T05:17:21.6205311Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-19T05:17:21.6205422Z       "requiredStages": [
2026-06-19T05:17:21.6205508Z         "impl",
2026-06-19T05:17:21.6205598Z         "unit",
2026-06-19T05:17:21.6205684Z         "int"
2026-06-19T05:17:21.6205771Z       ],
2026-06-19T05:17:21.6205865Z       "stages": {
2026-06-19T05:17:21.6205950Z         "doc": {
2026-06-19T05:17:21.6206052Z           "complete": false,
2026-06-19T05:17:21.6206142Z           "evidence": []
2026-06-19T05:17:21.6206237Z         },
2026-06-19T05:17:21.6206328Z         "impl": {
2026-06-19T05:17:21.6206420Z           "complete": true,
2026-06-19T05:17:21.6206513Z           "evidence": [
2026-06-19T05:17:21.6206608Z             {
2026-06-19T05:17:21.6206737Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6206819Z               "line": 757
2026-06-19T05:17:21.6206903Z             },
2026-06-19T05:17:21.6206994Z             {
2026-06-19T05:17:21.6207118Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6207213Z               "line": 118
2026-06-19T05:17:21.6207289Z             },
2026-06-19T05:17:21.6207367Z             {
2026-06-19T05:17:21.6207486Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6207576Z               "line": 347
2026-06-19T05:17:21.6207667Z             },
2026-06-19T05:17:21.6207748Z             {
2026-06-19T05:17:21.6207866Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6207953Z               "line": 389
2026-06-19T05:17:21.6208035Z             },
2026-06-19T05:17:21.6208115Z             {
2026-06-19T05:17:21.6208224Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6208321Z               "line": 403
2026-06-19T05:17:21.6208406Z             },
2026-06-19T05:17:21.6208501Z             {
2026-06-19T05:17:21.6208616Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6208716Z               "line": 492
2026-06-19T05:17:21.6208796Z             },
2026-06-19T05:17:21.6208881Z             {
2026-06-19T05:17:21.6209070Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6209155Z               "line": 507
2026-06-19T05:17:21.6209241Z             },
2026-06-19T05:17:21.6209323Z             {
2026-06-19T05:17:21.6209470Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6209561Z               "line": 534
2026-06-19T05:17:21.6209643Z             },
2026-06-19T05:17:21.6209718Z             {
2026-06-19T05:17:21.6209841Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6209938Z               "line": 207
2026-06-19T05:17:21.6210123Z             },
2026-06-19T05:17:21.6210215Z             {
2026-06-19T05:17:21.6210339Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6210419Z               "line": 755
2026-06-19T05:17:21.6210510Z             },
2026-06-19T05:17:21.6210587Z             {
2026-06-19T05:17:21.6210710Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6210795Z               "line": 816
2026-06-19T05:17:21.6210883Z             },
2026-06-19T05:17:21.6210958Z             {
2026-06-19T05:17:21.6211174Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6211268Z               "line": 869
2026-06-19T05:17:21.6211349Z             },
2026-06-19T05:17:21.6211430Z             {
2026-06-19T05:17:21.6211555Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6211644Z               "line": 891
2026-06-19T05:17:21.6211724Z             },
2026-06-19T05:17:21.6211810Z             {
2026-06-19T05:17:21.6211928Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.6212018Z               "line": 122
2026-06-19T05:17:21.6212113Z             },
2026-06-19T05:17:21.6212185Z             {
2026-06-19T05:17:21.6212304Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6212399Z               "line": 44
2026-06-19T05:17:21.6212491Z             },
2026-06-19T05:17:21.6212581Z             {
2026-06-19T05:17:21.6212694Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6212791Z               "line": 184
2026-06-19T05:17:21.6212872Z             },
2026-06-19T05:17:21.6212953Z             {
2026-06-19T05:17:21.6213076Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6213158Z               "line": 211
2026-06-19T05:17:21.6213243Z             },
2026-06-19T05:17:21.6213324Z             {
2026-06-19T05:17:21.6213440Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6213534Z               "line": 251
2026-06-19T05:17:21.6213620Z             },
2026-06-19T05:17:21.6213706Z             {
2026-06-19T05:17:21.6213812Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6213910Z               "line": 275
2026-06-19T05:17:21.6213992Z             },
2026-06-19T05:17:21.6214079Z             {
2026-06-19T05:17:21.6214192Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6214287Z               "line": 289
2026-06-19T05:17:21.6214377Z             },
2026-06-19T05:17:21.6214463Z             {
2026-06-19T05:17:21.6214589Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6214665Z               "line": 300
2026-06-19T05:17:21.6214757Z             },
2026-06-19T05:17:21.6214848Z             {
2026-06-19T05:17:21.6214961Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6215048Z               "line": 313
2026-06-19T05:17:21.6215128Z             }
2026-06-19T05:17:21.6215218Z           ]
2026-06-19T05:17:21.6215299Z         },
2026-06-19T05:17:21.6215396Z         "int": {
2026-06-19T05:17:21.6215496Z           "complete": true,
2026-06-19T05:17:21.6215571Z           "evidence": [
2026-06-19T05:17:21.6215658Z             {
2026-06-19T05:17:21.6215786Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-19T05:17:21.6215871Z               "line": 116
2026-06-19T05:17:21.6215953Z             },
2026-06-19T05:17:21.6216035Z             {
2026-06-19T05:17:21.6216163Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-19T05:17:21.6216258Z               "line": 181
2026-06-19T05:17:21.6216345Z             }
2026-06-19T05:17:21.6216430Z           ]
2026-06-19T05:17:21.6216520Z         },
2026-06-19T05:17:21.6216608Z         "unit": {
2026-06-19T05:17:21.6216712Z           "complete": true,
2026-06-19T05:17:21.6216807Z           "evidence": [
2026-06-19T05:17:21.6216893Z             {
2026-06-19T05:17:21.6217022Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6217106Z               "line": 999
2026-06-19T05:17:21.6217268Z             },
2026-06-19T05:17:21.6217350Z             {
2026-06-19T05:17:21.6217482Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6217574Z               "line": 1016
2026-06-19T05:17:21.6217660Z             },
2026-06-19T05:17:21.6217750Z             {
2026-06-19T05:17:21.6217874Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6217970Z               "line": 1024
2026-06-19T05:17:21.6218055Z             },
2026-06-19T05:17:21.6218213Z             {
2026-06-19T05:17:21.6218341Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6218431Z               "line": 1048
2026-06-19T05:17:21.6218513Z             },
2026-06-19T05:17:21.6218600Z             {
2026-06-19T05:17:21.6218736Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6218833Z               "line": 1499
2026-06-19T05:17:21.6218919Z             },
2026-06-19T05:17:21.6219080Z             {
2026-06-19T05:17:21.6219191Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6219281Z               "line": 347
2026-06-19T05:17:21.6219365Z             },
2026-06-19T05:17:21.6219460Z             {
2026-06-19T05:17:21.6219579Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6219682Z               "line": 370
2026-06-19T05:17:21.6219772Z             },
2026-06-19T05:17:21.6219859Z             {
2026-06-19T05:17:21.6219978Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6220073Z               "line": 407
2026-06-19T05:17:21.6220164Z             },
2026-06-19T05:17:21.6220250Z             {
2026-06-19T05:17:21.6220359Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6220455Z               "line": 431
2026-06-19T05:17:21.6220541Z             },
2026-06-19T05:17:21.6220621Z             {
2026-06-19T05:17:21.6220726Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6220823Z               "line": 483
2026-06-19T05:17:21.6220903Z             },
2026-06-19T05:17:21.6220984Z             {
2026-06-19T05:17:21.6221104Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6221184Z               "line": 499
2026-06-19T05:17:21.6221275Z             },
2026-06-19T05:17:21.6221356Z             {
2026-06-19T05:17:21.6221467Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6221556Z               "line": 514
2026-06-19T05:17:21.6221642Z             },
2026-06-19T05:17:21.6221729Z             {
2026-06-19T05:17:21.6221838Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6221933Z               "line": 531
2026-06-19T05:17:21.6222025Z             }
2026-06-19T05:17:21.6222106Z           ]
2026-06-19T05:17:21.6222199Z         }
2026-06-19T05:17:21.6222284Z       }
2026-06-19T05:17:21.6222370Z     },
2026-06-19T05:17:21.6222456Z     {
2026-06-19T05:17:21.6222554Z       "id": "REQ-MESH-3",
2026-06-19T05:17:21.6224175Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-19T05:17:21.6224271Z       "requiredStages": [
2026-06-19T05:17:21.6224362Z         "impl",
2026-06-19T05:17:21.6224442Z         "unit",
2026-06-19T05:17:21.6224528Z         "int"
2026-06-19T05:17:21.6224611Z       ],
2026-06-19T05:17:21.6224691Z       "stages": {
2026-06-19T05:17:21.6224776Z         "doc": {
2026-06-19T05:17:21.6224875Z           "complete": false,
2026-06-19T05:17:21.6224975Z           "evidence": []
2026-06-19T05:17:21.6225192Z         },
2026-06-19T05:17:21.6225293Z         "impl": {
2026-06-19T05:17:21.6225394Z           "complete": true,
2026-06-19T05:17:21.6225483Z           "evidence": [
2026-06-19T05:17:21.6225564Z             {
2026-06-19T05:17:21.6225689Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.6225788Z               "line": 641
2026-06-19T05:17:21.6225869Z             }
2026-06-19T05:17:21.6225956Z           ]
2026-06-19T05:17:21.6226042Z         },
2026-06-19T05:17:21.6226223Z         "int": {
2026-06-19T05:17:21.6226328Z           "complete": true,
2026-06-19T05:17:21.6226423Z           "evidence": [
2026-06-19T05:17:21.6226513Z             {
2026-06-19T05:17:21.6226633Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-19T05:17:21.6226719Z               "line": 373
2026-06-19T05:17:21.6226799Z             },
2026-06-19T05:17:21.6226877Z             {
2026-06-19T05:17:21.6226999Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-19T05:17:21.6227085Z               "line": 436
2026-06-19T05:17:21.6227173Z             }
2026-06-19T05:17:21.6227258Z           ]
2026-06-19T05:17:21.6227342Z         },
2026-06-19T05:17:21.6227429Z         "unit": {
2026-06-19T05:17:21.6227516Z           "complete": true,
2026-06-19T05:17:21.6227610Z           "evidence": [
2026-06-19T05:17:21.6227680Z             {
2026-06-19T05:17:21.6227809Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.6227891Z               "line": 910
2026-06-19T05:17:21.6227977Z             }
2026-06-19T05:17:21.6228062Z           ]
2026-06-19T05:17:21.6228148Z         }
2026-06-19T05:17:21.6228224Z       }
2026-06-19T05:17:21.6228310Z     },
2026-06-19T05:17:21.6228395Z     {
2026-06-19T05:17:21.6231286Z       "id": "REQ-MESH-4",
2026-06-19T05:17:21.6233524Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-19T05:17:21.6233659Z       "requiredStages": [
2026-06-19T05:17:21.6233744Z         "impl",
2026-06-19T05:17:21.6233829Z         "unit",
2026-06-19T05:17:21.6233926Z         "int"
2026-06-19T05:17:21.6234006Z       ],
2026-06-19T05:17:21.6234091Z       "stages": {
2026-06-19T05:17:21.6234178Z         "doc": {
2026-06-19T05:17:21.6234278Z           "complete": false,
2026-06-19T05:17:21.6234364Z           "evidence": []
2026-06-19T05:17:21.6234454Z         },
2026-06-19T05:17:21.6234541Z         "impl": {
2026-06-19T05:17:21.6234626Z           "complete": true,
2026-06-19T05:17:21.6234716Z           "evidence": [
2026-06-19T05:17:21.6234792Z             {
2026-06-19T05:17:21.6234922Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.6235007Z               "line": 33
2026-06-19T05:17:21.6235089Z             },
2026-06-19T05:17:21.6235175Z             {
2026-06-19T05:17:21.6235298Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6235392Z               "line": 68
2026-06-19T05:17:21.6235464Z             },
2026-06-19T05:17:21.6235550Z             {
2026-06-19T05:17:21.6235672Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6235762Z               "line": 111
2026-06-19T05:17:21.6235853Z             },
2026-06-19T05:17:21.6235930Z             {
2026-06-19T05:17:21.6236057Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6236139Z               "line": 462
2026-06-19T05:17:21.6236362Z             },
2026-06-19T05:17:21.6236449Z             {
2026-06-19T05:17:21.6236578Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6236668Z               "line": 711
2026-06-19T05:17:21.6236759Z             },
2026-06-19T05:17:21.6236850Z             {
2026-06-19T05:17:21.6236973Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6237064Z               "line": 725
2026-06-19T05:17:21.6237245Z             },
2026-06-19T05:17:21.6237326Z             {
2026-06-19T05:17:21.6237442Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.6237522Z               "line": 132
2026-06-19T05:17:21.6237603Z             },
2026-06-19T05:17:21.6237684Z             {
2026-06-19T05:17:21.6237813Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6237898Z               "line": 26
2026-06-19T05:17:21.6237984Z             },
2026-06-19T05:17:21.6238072Z             {
2026-06-19T05:17:21.6238194Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6238279Z               "line": 97
2026-06-19T05:17:21.6238369Z             },
2026-06-19T05:17:21.6238451Z             {
2026-06-19T05:17:21.6238569Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6238660Z               "line": 119
2026-06-19T05:17:21.6238747Z             },
2026-06-19T05:17:21.6238828Z             {
2026-06-19T05:17:21.6239038Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6239132Z               "line": 82
2026-06-19T05:17:21.6239204Z             },
2026-06-19T05:17:21.6239294Z             {
2026-06-19T05:17:21.6239438Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6239519Z               "line": 111
2026-06-19T05:17:21.6239599Z             },
2026-06-19T05:17:21.6239686Z             {
2026-06-19T05:17:21.6239795Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6239895Z               "line": 232
2026-06-19T05:17:21.6239982Z             },
2026-06-19T05:17:21.6240063Z             {
2026-06-19T05:17:21.6240181Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6240262Z               "line": 245
2026-06-19T05:17:21.6240350Z             },
2026-06-19T05:17:21.6240434Z             {
2026-06-19T05:17:21.6240538Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6240628Z               "line": 4534
2026-06-19T05:17:21.6240714Z             }
2026-06-19T05:17:21.6240807Z           ]
2026-06-19T05:17:21.6240883Z         },
2026-06-19T05:17:21.6240970Z         "int": {
2026-06-19T05:17:21.6241066Z           "complete": true,
2026-06-19T05:17:21.6241165Z           "evidence": [
2026-06-19T05:17:21.6241251Z             {
2026-06-19T05:17:21.6241375Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-19T05:17:21.6241460Z               "line": 98
2026-06-19T05:17:21.6241546Z             },
2026-06-19T05:17:21.6241638Z             {
2026-06-19T05:17:21.6241742Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-19T05:17:21.6241837Z               "line": 140
2026-06-19T05:17:21.6241919Z             }
2026-06-19T05:17:21.6241999Z           ]
2026-06-19T05:17:21.6242090Z         },
2026-06-19T05:17:21.6242171Z         "unit": {
2026-06-19T05:17:21.6242267Z           "complete": true,
2026-06-19T05:17:21.6242352Z           "evidence": [
2026-06-19T05:17:21.6242438Z             {
2026-06-19T05:17:21.6242568Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.6242657Z               "line": 178
2026-06-19T05:17:21.6242743Z             },
2026-06-19T05:17:21.6242825Z             {
2026-06-19T05:17:21.6242953Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.6243048Z               "line": 242
2026-06-19T05:17:21.6243130Z             },
2026-06-19T05:17:21.6243217Z             {
2026-06-19T05:17:21.6243343Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6243539Z               "line": 1079
2026-06-19T05:17:21.6243618Z             },
2026-06-19T05:17:21.6243708Z             {
2026-06-19T05:17:21.6243832Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6243918Z               "line": 1109
2026-06-19T05:17:21.6244008Z             },
2026-06-19T05:17:21.6244089Z             {
2026-06-19T05:17:21.6244214Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:17:21.6244294Z               "line": 1129
2026-06-19T05:17:21.6244472Z             },
2026-06-19T05:17:21.6244552Z             {
2026-06-19T05:17:21.6244685Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:17:21.6244781Z               "line": 602
2026-06-19T05:17:21.6244862Z             },
2026-06-19T05:17:21.6244952Z             {
2026-06-19T05:17:21.6245067Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6245163Z               "line": 148
2026-06-19T05:17:21.6245238Z             },
2026-06-19T05:17:21.6245319Z             {
2026-06-19T05:17:21.6245445Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6245525Z               "line": 169
2026-06-19T05:17:21.6245615Z             },
2026-06-19T05:17:21.6245692Z             {
2026-06-19T05:17:21.6245816Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6245910Z               "line": 181
2026-06-19T05:17:21.6245995Z             },
2026-06-19T05:17:21.6246082Z             {
2026-06-19T05:17:21.6246203Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:17:21.6246293Z               "line": 202
2026-06-19T05:17:21.6246379Z             },
2026-06-19T05:17:21.6246461Z             {
2026-06-19T05:17:21.6246575Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6246651Z               "line": 375
2026-06-19T05:17:21.6246733Z             },
2026-06-19T05:17:21.6246819Z             {
2026-06-19T05:17:21.6246941Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6247034Z               "line": 407
2026-06-19T05:17:21.6247114Z             },
2026-06-19T05:17:21.6247204Z             {
2026-06-19T05:17:21.6247310Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6247400Z               "line": 9857
2026-06-19T05:17:21.6247481Z             }
2026-06-19T05:17:21.6247562Z           ]
2026-06-19T05:17:21.6247643Z         }
2026-06-19T05:17:21.6247725Z       }
2026-06-19T05:17:21.6247805Z     },
2026-06-19T05:17:21.6247891Z     {
2026-06-19T05:17:21.6247983Z       "id": "REQ-MESH-5",
2026-06-19T05:17:21.6249454Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-19T05:17:21.6249574Z       "requiredStages": [
2026-06-19T05:17:21.6249669Z         "impl",
2026-06-19T05:17:21.6249755Z         "unit"
2026-06-19T05:17:21.6249835Z       ],
2026-06-19T05:17:21.6249922Z       "stages": {
2026-06-19T05:17:21.6250008Z         "doc": {
2026-06-19T05:17:21.6250102Z           "complete": false,
2026-06-19T05:17:21.6250198Z           "evidence": []
2026-06-19T05:17:21.6250275Z         },
2026-06-19T05:17:21.6250369Z         "impl": {
2026-06-19T05:17:21.6250469Z           "complete": true,
2026-06-19T05:17:21.6250557Z           "evidence": [
2026-06-19T05:17:21.6250642Z             {
2026-06-19T05:17:21.6250765Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6250857Z               "line": 61
2026-06-19T05:17:21.6250942Z             },
2026-06-19T05:17:21.6251027Z             {
2026-06-19T05:17:21.6251150Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6251349Z               "line": 109
2026-06-19T05:17:21.6251434Z             },
2026-06-19T05:17:21.6251515Z             {
2026-06-19T05:17:21.6251644Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6251739Z               "line": 104
2026-06-19T05:17:21.6251826Z             },
2026-06-19T05:17:21.6251907Z             {
2026-06-19T05:17:21.6252034Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.6252131Z               "line": 105
2026-06-19T05:17:21.6252326Z             },
2026-06-19T05:17:21.6252412Z             {
2026-06-19T05:17:21.6252541Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6252627Z               "line": 85
2026-06-19T05:17:21.6252712Z             },
2026-06-19T05:17:21.6252794Z             {
2026-06-19T05:17:21.6252927Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6253012Z               "line": 250
2026-06-19T05:17:21.6253095Z             },
2026-06-19T05:17:21.6253190Z             {
2026-06-19T05:17:21.6253308Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6253395Z               "line": 314
2026-06-19T05:17:21.6253481Z             },
2026-06-19T05:17:21.6253570Z             {
2026-06-19T05:17:21.6253700Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6253786Z               "line": 767
2026-06-19T05:17:21.6253871Z             },
2026-06-19T05:17:21.6253951Z             {
2026-06-19T05:17:21.6254070Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.6254155Z               "line": 101
2026-06-19T05:17:21.6254239Z             },
2026-06-19T05:17:21.6254324Z             {
2026-06-19T05:17:21.6254440Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6254526Z               "line": 193
2026-06-19T05:17:21.6254606Z             }
2026-06-19T05:17:21.6254688Z           ]
2026-06-19T05:17:21.6254774Z         },
2026-06-19T05:17:21.6254869Z         "int": {
2026-06-19T05:17:21.6254964Z           "complete": false,
2026-06-19T05:17:21.6255051Z           "evidence": []
2026-06-19T05:17:21.6255146Z         },
2026-06-19T05:17:21.6255221Z         "unit": {
2026-06-19T05:17:21.6255308Z           "complete": true,
2026-06-19T05:17:21.6255399Z           "evidence": [
2026-06-19T05:17:21.6255479Z             {
2026-06-19T05:17:21.6255607Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6255690Z               "line": 1009
2026-06-19T05:17:21.6255774Z             },
2026-06-19T05:17:21.6255860Z             {
2026-06-19T05:17:21.6255981Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:17:21.6256075Z               "line": 462
2026-06-19T05:17:21.6256156Z             }
2026-06-19T05:17:21.6256242Z           ]
2026-06-19T05:17:21.6256329Z         }
2026-06-19T05:17:21.6256418Z       }
2026-06-19T05:17:21.6256504Z     },
2026-06-19T05:17:21.6256594Z     {
2026-06-19T05:17:21.6256684Z       "id": "REQ-MESH-6",
2026-06-19T05:17:21.6257909Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-19T05:17:21.6258017Z       "requiredStages": [
2026-06-19T05:17:21.6258107Z         "impl",
2026-06-19T05:17:21.6258194Z         "unit"
2026-06-19T05:17:21.6258280Z       ],
2026-06-19T05:17:21.6258361Z       "stages": {
2026-06-19T05:17:21.6258442Z         "doc": {
2026-06-19T05:17:21.6258538Z           "complete": false,
2026-06-19T05:17:21.6258637Z           "evidence": []
2026-06-19T05:17:21.6258723Z         },
2026-06-19T05:17:21.6258814Z         "impl": {
2026-06-19T05:17:21.6258910Z           "complete": true,
2026-06-19T05:17:21.6259172Z           "evidence": [
2026-06-19T05:17:21.6259258Z             {
2026-06-19T05:17:21.6259380Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6259475Z               "line": 4057
2026-06-19T05:17:21.6259557Z             }
2026-06-19T05:17:21.6259647Z           ]
2026-06-19T05:17:21.6259727Z         },
2026-06-19T05:17:21.6259809Z         "int": {
2026-06-19T05:17:21.6259915Z           "complete": false,
2026-06-19T05:17:21.6260000Z           "evidence": []
2026-06-19T05:17:21.6260182Z         },
2026-06-19T05:17:21.6260267Z         "unit": {
2026-06-19T05:17:21.6260353Z           "complete": true,
2026-06-19T05:17:21.6260434Z           "evidence": [
2026-06-19T05:17:21.6260529Z             {
2026-06-19T05:17:21.6260630Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6260715Z               "line": 10390
2026-06-19T05:17:21.6260797Z             },
2026-06-19T05:17:21.6260878Z             {
2026-06-19T05:17:21.6260987Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6261083Z               "line": 10417
2026-06-19T05:17:21.6261159Z             },
2026-06-19T05:17:21.6261244Z             {
2026-06-19T05:17:21.6261344Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6261432Z               "line": 10441
2026-06-19T05:17:21.6261512Z             }
2026-06-19T05:17:21.6261596Z           ]
2026-06-19T05:17:21.6261677Z         }
2026-06-19T05:17:21.6261768Z       }
2026-06-19T05:17:21.6261857Z     },
2026-06-19T05:17:21.6261937Z     {
2026-06-19T05:17:21.6262032Z       "id": "REQ-MIGRATE-1",
2026-06-19T05:17:21.6262200Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-19T05:17:21.6262304Z       "requiredStages": [],
2026-06-19T05:17:21.6262391Z       "stages": {
2026-06-19T05:17:21.6262481Z         "doc": {
2026-06-19T05:17:21.6262567Z           "complete": false,
2026-06-19T05:17:21.6262652Z           "evidence": []
2026-06-19T05:17:21.6262739Z         },
2026-06-19T05:17:21.6262819Z         "impl": {
2026-06-19T05:17:21.6262914Z           "complete": false,
2026-06-19T05:17:21.6263001Z           "evidence": []
2026-06-19T05:17:21.6263087Z         },
2026-06-19T05:17:21.6263173Z         "int": {
2026-06-19T05:17:21.6263262Z           "complete": false,
2026-06-19T05:17:21.6263354Z           "evidence": []
2026-06-19T05:17:21.6263439Z         },
2026-06-19T05:17:21.6263520Z         "unit": {
2026-06-19T05:17:21.6263606Z           "complete": false,
2026-06-19T05:17:21.6263702Z           "evidence": []
2026-06-19T05:17:21.6263787Z         }
2026-06-19T05:17:21.6263873Z       }
2026-06-19T05:17:21.6263955Z     },
2026-06-19T05:17:21.6264036Z     {
2026-06-19T05:17:21.6264130Z       "id": "REQ-MSG-1",
2026-06-19T05:17:21.6264554Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-19T05:17:21.6264654Z       "requiredStages": [
2026-06-19T05:17:21.6264734Z         "impl",
2026-06-19T05:17:21.6264814Z         "unit",
2026-06-19T05:17:21.6264899Z         "int"
2026-06-19T05:17:21.6264981Z       ],
2026-06-19T05:17:21.6265063Z       "stages": {
2026-06-19T05:17:21.6265142Z         "doc": {
2026-06-19T05:17:21.6265233Z           "complete": false,
2026-06-19T05:17:21.6265320Z           "evidence": []
2026-06-19T05:17:21.6265406Z         },
2026-06-19T05:17:21.6265490Z         "impl": {
2026-06-19T05:17:21.6265577Z           "complete": true,
2026-06-19T05:17:21.6265668Z           "evidence": [
2026-06-19T05:17:21.6265753Z             {
2026-06-19T05:17:21.6265882Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6265964Z               "line": 28
2026-06-19T05:17:21.6266049Z             },
2026-06-19T05:17:21.6266134Z             {
2026-06-19T05:17:21.6266250Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6266344Z               "line": 94
2026-06-19T05:17:21.6266430Z             },
2026-06-19T05:17:21.6266517Z             {
2026-06-19T05:17:21.6266711Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6266798Z               "line": 127
2026-06-19T05:17:21.6266880Z             },
2026-06-19T05:17:21.6266960Z             {
2026-06-19T05:17:21.6267078Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6267173Z               "line": 149
2026-06-19T05:17:21.6267259Z             },
2026-06-19T05:17:21.6267352Z             {
2026-06-19T05:17:21.6267461Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6267615Z               "line": 174
2026-06-19T05:17:21.6267700Z             },
2026-06-19T05:17:21.6267791Z             {
2026-06-19T05:17:21.6267915Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:17:21.6267995Z               "line": 18
2026-06-19T05:17:21.6268081Z             },
2026-06-19T05:17:21.6268164Z             {
2026-06-19T05:17:21.6268282Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.6268367Z               "line": 13
2026-06-19T05:17:21.6268454Z             },
2026-06-19T05:17:21.6268539Z             {
2026-06-19T05:17:21.6268644Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.6268739Z               "line": 62
2026-06-19T05:17:21.6268822Z             },
2026-06-19T05:17:21.6268906Z             {
2026-06-19T05:17:21.6269084Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6269179Z               "line": 13
2026-06-19T05:17:21.6269254Z             }
2026-06-19T05:17:21.6269355Z           ]
2026-06-19T05:17:21.6269447Z         },
2026-06-19T05:17:21.6269526Z         "int": {
2026-06-19T05:17:21.6269622Z           "complete": true,
2026-06-19T05:17:21.6269709Z           "evidence": [
2026-06-19T05:17:21.6269799Z             {
2026-06-19T05:17:21.6269940Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:17:21.6270021Z               "line": 9
2026-06-19T05:17:21.6270103Z             },
2026-06-19T05:17:21.6270189Z             {
2026-06-19T05:17:21.6270331Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:17:21.6270418Z               "line": 56
2026-06-19T05:17:21.6270494Z             },
2026-06-19T05:17:21.6270574Z             {
2026-06-19T05:17:21.6270704Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:17:21.6270789Z               "line": 113
2026-06-19T05:17:21.6270870Z             }
2026-06-19T05:17:21.6270960Z           ]
2026-06-19T05:17:21.6271048Z         },
2026-06-19T05:17:21.6271137Z         "unit": {
2026-06-19T05:17:21.6271242Z           "complete": true,
2026-06-19T05:17:21.6271328Z           "evidence": [
2026-06-19T05:17:21.6271414Z             {
2026-06-19T05:17:21.6271519Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6271604Z               "line": 203
2026-06-19T05:17:21.6271687Z             },
2026-06-19T05:17:21.6271767Z             {
2026-06-19T05:17:21.6271886Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6271977Z               "line": 232
2026-06-19T05:17:21.6272067Z             },
2026-06-19T05:17:21.6272148Z             {
2026-06-19T05:17:21.6272256Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6272337Z               "line": 277
2026-06-19T05:17:21.6272427Z             },
2026-06-19T05:17:21.6272507Z             {
2026-06-19T05:17:21.6272617Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6272713Z               "line": 300
2026-06-19T05:17:21.6272788Z             },
2026-06-19T05:17:21.6272883Z             {
2026-06-19T05:17:21.6272989Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:17:21.6273079Z               "line": 325
2026-06-19T05:17:21.6273169Z             },
2026-06-19T05:17:21.6273251Z             {
2026-06-19T05:17:21.6273366Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:17:21.6273451Z               "line": 204
2026-06-19T05:17:21.6273532Z             },
2026-06-19T05:17:21.6273618Z             {
2026-06-19T05:17:21.6273832Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:17:21.6273933Z               "line": 237
2026-06-19T05:17:21.6274019Z             },
2026-06-19T05:17:21.6274104Z             {
2026-06-19T05:17:21.6274220Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:17:21.6274305Z               "line": 251
2026-06-19T05:17:21.6274390Z             },
2026-06-19T05:17:21.6274476Z             {
2026-06-19T05:17:21.6274591Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:17:21.6274776Z               "line": 263
2026-06-19T05:17:21.6274864Z             },
2026-06-19T05:17:21.6274944Z             {
2026-06-19T05:17:21.6275061Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.6275157Z               "line": 162
2026-06-19T05:17:21.6275233Z             },
2026-06-19T05:17:21.6275322Z             {
2026-06-19T05:17:21.6275426Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:17:21.6275526Z               "line": 242
2026-06-19T05:17:21.6275613Z             },
2026-06-19T05:17:21.6275707Z             {
2026-06-19T05:17:21.6275818Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6275909Z               "line": 134
2026-06-19T05:17:21.6275999Z             },
2026-06-19T05:17:21.6276084Z             {
2026-06-19T05:17:21.6276195Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6276286Z               "line": 153
2026-06-19T05:17:21.6276379Z             }
2026-06-19T05:17:21.6276471Z           ]
2026-06-19T05:17:21.6276552Z         }
2026-06-19T05:17:21.6276643Z       }
2026-06-19T05:17:21.6276728Z     },
2026-06-19T05:17:21.6276805Z     {
2026-06-19T05:17:21.6276895Z       "id": "REQ-MSG-2",
2026-06-19T05:17:21.6277163Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-19T05:17:21.6277261Z       "requiredStages": [
2026-06-19T05:17:21.6277348Z         "impl",
2026-06-19T05:17:21.6277435Z         "unit"
2026-06-19T05:17:21.6277520Z       ],
2026-06-19T05:17:21.6277604Z       "stages": {
2026-06-19T05:17:21.6277689Z         "doc": {
2026-06-19T05:17:21.6277790Z           "complete": false,
2026-06-19T05:17:21.6277884Z           "evidence": []
2026-06-19T05:17:21.6277964Z         },
2026-06-19T05:17:21.6278055Z         "impl": {
2026-06-19T05:17:21.6278146Z           "complete": true,
2026-06-19T05:17:21.6278236Z           "evidence": [
2026-06-19T05:17:21.6278317Z             {
2026-06-19T05:17:21.6278423Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6278514Z               "line": 11
2026-06-19T05:17:21.6278603Z             },
2026-06-19T05:17:21.6278699Z             {
2026-06-19T05:17:21.6278804Z               "path": "crates/spt/src/main.rs",
2026-06-19T05:17:21.6278894Z               "line": 8
2026-06-19T05:17:21.6279053Z             }
2026-06-19T05:17:21.6279137Z           ]
2026-06-19T05:17:21.6279227Z         },
2026-06-19T05:17:21.6279319Z         "int": {
2026-06-19T05:17:21.6279452Z           "complete": false,
2026-06-19T05:17:21.6279547Z           "evidence": []
2026-06-19T05:17:21.6279639Z         },
2026-06-19T05:17:21.6279721Z         "unit": {
2026-06-19T05:17:21.6279819Z           "complete": true,
2026-06-19T05:17:21.6279915Z           "evidence": [
2026-06-19T05:17:21.6280002Z             {
2026-06-19T05:17:21.6280114Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6280201Z               "line": 7574
2026-06-19T05:17:21.6280293Z             },
2026-06-19T05:17:21.6280369Z             {
2026-06-19T05:17:21.6280476Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6280576Z               "line": 7616
2026-06-19T05:17:21.6280663Z             },
2026-06-19T05:17:21.6280749Z             {
2026-06-19T05:17:21.6280848Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6280939Z               "line": 7665
2026-06-19T05:17:21.6281030Z             },
2026-06-19T05:17:21.6281120Z             {
2026-06-19T05:17:21.6281344Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6281430Z               "line": 7688
2026-06-19T05:17:21.6281520Z             },
2026-06-19T05:17:21.6281608Z             {
2026-06-19T05:17:21.6281716Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6281797Z               "line": 9612
2026-06-19T05:17:21.6281888Z             },
2026-06-19T05:17:21.6281969Z             {
2026-06-19T05:17:21.6282074Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6282261Z               "line": 9621
2026-06-19T05:17:21.6282345Z             },
2026-06-19T05:17:21.6282431Z             {
2026-06-19T05:17:21.6282532Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6282627Z               "line": 9635
2026-06-19T05:17:21.6282722Z             }
2026-06-19T05:17:21.6282802Z           ]
2026-06-19T05:17:21.6282884Z         }
2026-06-19T05:17:21.6282963Z       }
2026-06-19T05:17:21.6283053Z     },
2026-06-19T05:17:21.6283143Z     {
2026-06-19T05:17:21.6283244Z       "id": "REQ-MSG-3",
2026-06-19T05:17:21.6283620Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-19T05:17:21.6283720Z       "requiredStages": [
2026-06-19T05:17:21.6283801Z         "impl",
2026-06-19T05:17:21.6283878Z         "unit",
2026-06-19T05:17:21.6283964Z         "int"
2026-06-19T05:17:21.6284049Z       ],
2026-06-19T05:17:21.6284141Z       "stages": {
2026-06-19T05:17:21.6284226Z         "doc": {
2026-06-19T05:17:21.6284326Z           "complete": false,
2026-06-19T05:17:21.6284412Z           "evidence": []
2026-06-19T05:17:21.6284494Z         },
2026-06-19T05:17:21.6284583Z         "impl": {
2026-06-19T05:17:21.6284669Z           "complete": true,
2026-06-19T05:17:21.6284760Z           "evidence": [
2026-06-19T05:17:21.6284846Z             {
2026-06-19T05:17:21.6284970Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:17:21.6285061Z               "line": 19
2026-06-19T05:17:21.6285147Z             },
2026-06-19T05:17:21.6285227Z             {
2026-06-19T05:17:21.6285332Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6285434Z               "line": 21
2026-06-19T05:17:21.6285523Z             },
2026-06-19T05:17:21.6285603Z             {
2026-06-19T05:17:21.6285707Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6285798Z               "line": 48
2026-06-19T05:17:21.6285887Z             },
2026-06-19T05:17:21.6285976Z             {
2026-06-19T05:17:21.6286082Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6286173Z               "line": 172
2026-06-19T05:17:21.6286254Z             }
2026-06-19T05:17:21.6286339Z           ]
2026-06-19T05:17:21.6286426Z         },
2026-06-19T05:17:21.6286521Z         "int": {
2026-06-19T05:17:21.6286610Z           "complete": true,
2026-06-19T05:17:21.6286712Z           "evidence": [
2026-06-19T05:17:21.6286802Z             {
2026-06-19T05:17:21.6286944Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:17:21.6287041Z               "line": 10
2026-06-19T05:17:21.6287131Z             },
2026-06-19T05:17:21.6287226Z             {
2026-06-19T05:17:21.6287356Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:17:21.6287451Z               "line": 56
2026-06-19T05:17:21.6287536Z             }
2026-06-19T05:17:21.6287618Z           ]
2026-06-19T05:17:21.6287699Z         },
2026-06-19T05:17:21.6287780Z         "unit": {
2026-06-19T05:17:21.6287884Z           "complete": true,
2026-06-19T05:17:21.6287981Z           "evidence": [
2026-06-19T05:17:21.6288057Z             {
2026-06-19T05:17:21.6288169Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6288255Z               "line": 226
2026-06-19T05:17:21.6288336Z             },
2026-06-19T05:17:21.6288426Z             {
2026-06-19T05:17:21.6288534Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6288630Z               "line": 245
2026-06-19T05:17:21.6288783Z             },
2026-06-19T05:17:21.6288868Z             {
2026-06-19T05:17:21.6289064Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6289153Z               "line": 268
2026-06-19T05:17:21.6289235Z             }
2026-06-19T05:17:21.6289322Z           ]
2026-06-19T05:17:21.6289417Z         }
2026-06-19T05:17:21.6289497Z       }
2026-06-19T05:17:21.6289589Z     },
2026-06-19T05:17:21.6289670Z     {
2026-06-19T05:17:21.6289769Z       "id": "REQ-MSG-4",
2026-06-19T05:17:21.6290684Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-19T05:17:21.6290785Z       "requiredStages": [
2026-06-19T05:17:21.6290867Z         "impl",
2026-06-19T05:17:21.6290957Z         "unit",
2026-06-19T05:17:21.6291041Z         "int"
2026-06-19T05:17:21.6291126Z       ],
2026-06-19T05:17:21.6291218Z       "stages": {
2026-06-19T05:17:21.6291305Z         "doc": {
2026-06-19T05:17:21.6291403Z           "complete": false,
2026-06-19T05:17:21.6291494Z           "evidence": []
2026-06-19T05:17:21.6291571Z         },
2026-06-19T05:17:21.6291652Z         "impl": {
2026-06-19T05:17:21.6291737Z           "complete": true,
2026-06-19T05:17:21.6291843Z           "evidence": [
2026-06-19T05:17:21.6291928Z             {
2026-06-19T05:17:21.6292042Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6292148Z               "line": 19
2026-06-19T05:17:21.6292233Z             },
2026-06-19T05:17:21.6292314Z             {
2026-06-19T05:17:21.6292419Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6292516Z               "line": 46
2026-06-19T05:17:21.6292600Z             },
2026-06-19T05:17:21.6292691Z             {
2026-06-19T05:17:21.6292821Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6292910Z               "line": 501
2026-06-19T05:17:21.6292996Z             },
2026-06-19T05:17:21.6293078Z             {
2026-06-19T05:17:21.6293187Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6293282Z               "line": 2986
2026-06-19T05:17:21.6293353Z             }
2026-06-19T05:17:21.6293439Z           ]
2026-06-19T05:17:21.6293519Z         },
2026-06-19T05:17:21.6293613Z         "int": {
2026-06-19T05:17:21.6293703Z           "complete": true,
2026-06-19T05:17:21.6293804Z           "evidence": [
2026-06-19T05:17:21.6293876Z             {
2026-06-19T05:17:21.6294008Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:17:21.6294100Z               "line": 98
2026-06-19T05:17:21.6294176Z             },
2026-06-19T05:17:21.6294261Z             {
2026-06-19T05:17:21.6294381Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:17:21.6294476Z               "line": 128
2026-06-19T05:17:21.6294561Z             }
2026-06-19T05:17:21.6294642Z           ]
2026-06-19T05:17:21.6294739Z         },
2026-06-19T05:17:21.6294820Z         "unit": {
2026-06-19T05:17:21.6294914Z           "complete": true,
2026-06-19T05:17:21.6295001Z           "evidence": [
2026-06-19T05:17:21.6295082Z             {
2026-06-19T05:17:21.6295196Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6295286Z               "line": 68
2026-06-19T05:17:21.6295369Z             },
2026-06-19T05:17:21.6295453Z             {
2026-06-19T05:17:21.6295563Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6295640Z               "line": 79
2026-06-19T05:17:21.6295726Z             },
2026-06-19T05:17:21.6295811Z             {
2026-06-19T05:17:21.6295916Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6296013Z               "line": 90
2026-06-19T05:17:21.6296097Z             },
2026-06-19T05:17:21.6296186Z             {
2026-06-19T05:17:21.6296296Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6296508Z               "line": 151
2026-06-19T05:17:21.6296599Z             }
2026-06-19T05:17:21.6296676Z           ]
2026-06-19T05:17:21.6296762Z         }
2026-06-19T05:17:21.6296833Z       }
2026-06-19T05:17:21.6296918Z     },
2026-06-19T05:17:21.6296991Z     {
2026-06-19T05:17:21.6297081Z       "id": "REQ-MSG-5",
2026-06-19T05:17:21.6297787Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-19T05:17:21.6297954Z       "requiredStages": [
2026-06-19T05:17:21.6298053Z         "doc",
2026-06-19T05:17:21.6298144Z         "impl",
2026-06-19T05:17:21.6298227Z         "unit"
2026-06-19T05:17:21.6298302Z       ],
2026-06-19T05:17:21.6298387Z       "stages": {
2026-06-19T05:17:21.6298483Z         "doc": {
2026-06-19T05:17:21.6298565Z           "complete": true,
2026-06-19T05:17:21.6298664Z           "evidence": [
2026-06-19T05:17:21.6298739Z             {
2026-06-19T05:17:21.6298844Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6298930Z               "line": 231
2026-06-19T05:17:21.6299094Z             }
2026-06-19T05:17:21.6299176Z           ]
2026-06-19T05:17:21.6299262Z         },
2026-06-19T05:17:21.6299352Z         "impl": {
2026-06-19T05:17:21.6299447Z           "complete": true,
2026-06-19T05:17:21.6299539Z           "evidence": [
2026-06-19T05:17:21.6299624Z             {
2026-06-19T05:17:21.6299742Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.6299839Z               "line": 60
2026-06-19T05:17:21.6299915Z             },
2026-06-19T05:17:21.6300001Z             {
2026-06-19T05:17:21.6302593Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6302708Z               "line": 126
2026-06-19T05:17:21.6302794Z             },
2026-06-19T05:17:21.6302875Z             {
2026-06-19T05:17:21.6302999Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6303109Z               "line": 135
2026-06-19T05:17:21.6303190Z             },
2026-06-19T05:17:21.6303275Z             {
2026-06-19T05:17:21.6303391Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6303479Z               "line": 149
2026-06-19T05:17:21.6303561Z             },
2026-06-19T05:17:21.6303638Z             {
2026-06-19T05:17:21.6303748Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6303837Z               "line": 178
2026-06-19T05:17:21.6303917Z             },
2026-06-19T05:17:21.6304004Z             {
2026-06-19T05:17:21.6304111Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6304206Z               "line": 2678
2026-06-19T05:17:21.6304287Z             }
2026-06-19T05:17:21.6304374Z           ]
2026-06-19T05:17:21.6304459Z         },
2026-06-19T05:17:21.6304545Z         "int": {
2026-06-19T05:17:21.6304640Z           "complete": true,
2026-06-19T05:17:21.6304722Z           "evidence": [
2026-06-19T05:17:21.6304816Z             {
2026-06-19T05:17:21.6304936Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-19T05:17:21.6305022Z               "line": 19
2026-06-19T05:17:21.6305107Z             }
2026-06-19T05:17:21.6305188Z           ]
2026-06-19T05:17:21.6305266Z         },
2026-06-19T05:17:21.6305356Z         "unit": {
2026-06-19T05:17:21.6305446Z           "complete": true,
2026-06-19T05:17:21.6305541Z           "evidence": [
2026-06-19T05:17:21.6305624Z             {
2026-06-19T05:17:21.6305751Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.6305841Z               "line": 192
2026-06-19T05:17:21.6305924Z             },
2026-06-19T05:17:21.6306004Z             {
2026-06-19T05:17:21.6306118Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:17:21.6306210Z               "line": 154
2026-06-19T05:17:21.6306291Z             },
2026-06-19T05:17:21.6306380Z             {
2026-06-19T05:17:21.6306491Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6306723Z               "line": 122
2026-06-19T05:17:21.6306813Z             },
2026-06-19T05:17:21.6306900Z             {
2026-06-19T05:17:21.6307021Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6307111Z               "line": 452
2026-06-19T05:17:21.6307193Z             },
2026-06-19T05:17:21.6307279Z             {
2026-06-19T05:17:21.6307393Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6307580Z               "line": 501
2026-06-19T05:17:21.6307665Z             },
2026-06-19T05:17:21.6307745Z             {
2026-06-19T05:17:21.6307852Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6307947Z               "line": 517
2026-06-19T05:17:21.6308032Z             },
2026-06-19T05:17:21.6308113Z             {
2026-06-19T05:17:21.6308232Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6308318Z               "line": 536
2026-06-19T05:17:21.6308413Z             },
2026-06-19T05:17:21.6308491Z             {
2026-06-19T05:17:21.6308595Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6308685Z               "line": 7517
2026-06-19T05:17:21.6308767Z             }
2026-06-19T05:17:21.6308848Z           ]
2026-06-19T05:17:21.6308933Z         }
2026-06-19T05:17:21.6309101Z       }
2026-06-19T05:17:21.6309191Z     },
2026-06-19T05:17:21.6309276Z     {
2026-06-19T05:17:21.6309385Z       "id": "REQ-MSG-6",
2026-06-19T05:17:21.6310966Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-19T05:17:21.6311076Z       "requiredStages": [
2026-06-19T05:17:21.6311156Z         "doc",
2026-06-19T05:17:21.6311251Z         "impl",
2026-06-19T05:17:21.6311334Z         "unit"
2026-06-19T05:17:21.6311419Z       ],
2026-06-19T05:17:21.6311509Z       "stages": {
2026-06-19T05:17:21.6311585Z         "doc": {
2026-06-19T05:17:21.6311687Z           "complete": true,
2026-06-19T05:17:21.6311767Z           "evidence": [
2026-06-19T05:17:21.6311858Z             {
2026-06-19T05:17:21.6311964Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6312049Z               "line": 234
2026-06-19T05:17:21.6312133Z             }
2026-06-19T05:17:21.6312218Z           ]
2026-06-19T05:17:21.6312300Z         },
2026-06-19T05:17:21.6312386Z         "impl": {
2026-06-19T05:17:21.6312481Z           "complete": true,
2026-06-19T05:17:21.6312567Z           "evidence": [
2026-06-19T05:17:21.6312643Z             {
2026-06-19T05:17:21.6312787Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6312881Z               "line": 177
2026-06-19T05:17:21.6312963Z             },
2026-06-19T05:17:21.6313039Z             {
2026-06-19T05:17:21.6313167Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6313259Z               "line": 428
2026-06-19T05:17:21.6313345Z             },
2026-06-19T05:17:21.6313421Z             {
2026-06-19T05:17:21.6313539Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6313636Z               "line": 451
2026-06-19T05:17:21.6313725Z             },
2026-06-19T05:17:21.6313811Z             {
2026-06-19T05:17:21.6313917Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.6314003Z               "line": 89
2026-06-19T05:17:21.6314088Z             },
2026-06-19T05:17:21.6314174Z             {
2026-06-19T05:17:21.6314289Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6314378Z               "line": 155
2026-06-19T05:17:21.6314473Z             }
2026-06-19T05:17:21.6314681Z           ]
2026-06-19T05:17:21.6314767Z         },
2026-06-19T05:17:21.6314853Z         "int": {
2026-06-19T05:17:21.6314939Z           "complete": false,
2026-06-19T05:17:21.6315038Z           "evidence": []
2026-06-19T05:17:21.6315119Z         },
2026-06-19T05:17:21.6315215Z         "unit": {
2026-06-19T05:17:21.6315306Z           "complete": true,
2026-06-19T05:17:21.6315395Z           "evidence": [
2026-06-19T05:17:21.6315482Z             {
2026-06-19T05:17:21.6315606Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6315797Z               "line": 1746
2026-06-19T05:17:21.6315878Z             },
2026-06-19T05:17:21.6315969Z             {
2026-06-19T05:17:21.6316087Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.6316179Z               "line": 219
2026-06-19T05:17:21.6316263Z             }
2026-06-19T05:17:21.6316349Z           ]
2026-06-19T05:17:21.6316436Z         }
2026-06-19T05:17:21.6316518Z       }
2026-06-19T05:17:21.6316611Z     },
2026-06-19T05:17:21.6316688Z     {
2026-06-19T05:17:21.6316789Z       "id": "REQ-MSG-ENVELOPE",
2026-06-19T05:17:21.6320477Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-19T05:17:21.6320587Z       "requiredStages": [
2026-06-19T05:17:21.6320673Z         "doc",
2026-06-19T05:17:21.6320754Z         "impl",
2026-06-19T05:17:21.6320839Z         "unit",
2026-06-19T05:17:21.6320916Z         "int"
2026-06-19T05:17:21.6320997Z       ],
2026-06-19T05:17:21.6321087Z       "stages": {
2026-06-19T05:17:21.6321168Z         "doc": {
2026-06-19T05:17:21.6321270Z           "complete": true,
2026-06-19T05:17:21.6321350Z           "evidence": [
2026-06-19T05:17:21.6321431Z             {
2026-06-19T05:17:21.6321655Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-19T05:17:21.6321760Z               "line": 47
2026-06-19T05:17:21.6321840Z             }
2026-06-19T05:17:21.6321928Z           ]
2026-06-19T05:17:21.6322007Z         },
2026-06-19T05:17:21.6322094Z         "impl": {
2026-06-19T05:17:21.6322189Z           "complete": true,
2026-06-19T05:17:21.6322276Z           "evidence": [
2026-06-19T05:17:21.6322360Z             {
2026-06-19T05:17:21.6322465Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6322557Z               "line": 20
2026-06-19T05:17:21.6322647Z             },
2026-06-19T05:17:21.6322722Z             {
2026-06-19T05:17:21.6322826Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6322918Z               "line": 33
2026-06-19T05:17:21.6323004Z             },
2026-06-19T05:17:21.6323093Z             {
2026-06-19T05:17:21.6323194Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6323285Z               "line": 47
2026-06-19T05:17:21.6323370Z             },
2026-06-19T05:17:21.6323456Z             {
2026-06-19T05:17:21.6323662Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6323741Z               "line": 58
2026-06-19T05:17:21.6323838Z             },
2026-06-19T05:17:21.6323914Z             {
2026-06-19T05:17:21.6324023Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6324104Z               "line": 14
2026-06-19T05:17:21.6324187Z             },
2026-06-19T05:17:21.6324271Z             {
2026-06-19T05:17:21.6324381Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6324572Z               "line": 27
2026-06-19T05:17:21.6324658Z             },
2026-06-19T05:17:21.6324744Z             {
2026-06-19T05:17:21.6324849Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6324938Z               "line": 40
2026-06-19T05:17:21.6325019Z             },
2026-06-19T05:17:21.6325095Z             {
2026-06-19T05:17:21.6325214Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.6325298Z               "line": 92
2026-06-19T05:17:21.6325388Z             },
2026-06-19T05:17:21.6325475Z             {
2026-06-19T05:17:21.6325589Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6325679Z               "line": 143
2026-06-19T05:17:21.6325760Z             },
2026-06-19T05:17:21.6325846Z             {
2026-06-19T05:17:21.6325951Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6326042Z               "line": 216
2026-06-19T05:17:21.6326133Z             },
2026-06-19T05:17:21.6326219Z             {
2026-06-19T05:17:21.6326323Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6326415Z               "line": 502
2026-06-19T05:17:21.6326504Z             },
2026-06-19T05:17:21.6326589Z             {
2026-06-19T05:17:21.6326705Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:17:21.6326796Z               "line": 78
2026-06-19T05:17:21.6326886Z             },
2026-06-19T05:17:21.6326976Z             {
2026-06-19T05:17:21.6327083Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6327176Z               "line": 2987
2026-06-19T05:17:21.6327262Z             }
2026-06-19T05:17:21.6327344Z           ]
2026-06-19T05:17:21.6327425Z         },
2026-06-19T05:17:21.6327510Z         "int": {
2026-06-19T05:17:21.6327611Z           "complete": true,
2026-06-19T05:17:21.6327698Z           "evidence": [
2026-06-19T05:17:21.6327782Z             {
2026-06-19T05:17:21.6327910Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-19T05:17:21.6328000Z               "line": 15
2026-06-19T05:17:21.6328086Z             }
2026-06-19T05:17:21.6328170Z           ]
2026-06-19T05:17:21.6328260Z         },
2026-06-19T05:17:21.6328342Z         "unit": {
2026-06-19T05:17:21.6328442Z           "complete": true,
2026-06-19T05:17:21.6328522Z           "evidence": [
2026-06-19T05:17:21.6328609Z             {
2026-06-19T05:17:21.6328714Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6328808Z               "line": 102
2026-06-19T05:17:21.6328880Z             },
2026-06-19T05:17:21.6329047Z             {
2026-06-19T05:17:21.6329152Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:17:21.6329243Z               "line": 137
2026-06-19T05:17:21.6329334Z             },
2026-06-19T05:17:21.6329424Z             {
2026-06-19T05:17:21.6329528Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6329611Z               "line": 98
2026-06-19T05:17:21.6329700Z             },
2026-06-19T05:17:21.6329786Z             {
2026-06-19T05:17:21.6329897Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6329982Z               "line": 106
2026-06-19T05:17:21.6330062Z             },
2026-06-19T05:17:21.6330144Z             {
2026-06-19T05:17:21.6330255Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6330339Z               "line": 113
2026-06-19T05:17:21.6330425Z             },
2026-06-19T05:17:21.6330500Z             {
2026-06-19T05:17:21.6330605Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:17:21.6330798Z               "line": 122
2026-06-19T05:17:21.6330880Z             }
2026-06-19T05:17:21.6330966Z           ]
2026-06-19T05:17:21.6331051Z         }
2026-06-19T05:17:21.6331137Z       }
2026-06-19T05:17:21.6331224Z     },
2026-06-19T05:17:21.6331305Z     {
2026-06-19T05:17:21.6331394Z       "id": "REQ-NET-1",
2026-06-19T05:17:21.6331576Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-19T05:17:21.6331766Z       "requiredStages": [
2026-06-19T05:17:21.6331853Z         "impl",
2026-06-19T05:17:21.6331938Z         "unit",
2026-06-19T05:17:21.6332019Z         "int"
2026-06-19T05:17:21.6332100Z       ],
2026-06-19T05:17:21.6332187Z       "stages": {
2026-06-19T05:17:21.6332267Z         "doc": {
2026-06-19T05:17:21.6332363Z           "complete": false,
2026-06-19T05:17:21.6332444Z           "evidence": []
2026-06-19T05:17:21.6332525Z         },
2026-06-19T05:17:21.6332610Z         "impl": {
2026-06-19T05:17:21.6332701Z           "complete": true,
2026-06-19T05:17:21.6332779Z           "evidence": [
2026-06-19T05:17:21.6332864Z             {
2026-06-19T05:17:21.6332992Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6333079Z               "line": 54
2026-06-19T05:17:21.6333160Z             },
2026-06-19T05:17:21.6333239Z             {
2026-06-19T05:17:21.6333367Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6333444Z               "line": 594
2026-06-19T05:17:21.6333536Z             },
2026-06-19T05:17:21.6333625Z             {
2026-06-19T05:17:21.6333730Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:17:21.6333817Z               "line": 130
2026-06-19T05:17:21.6333902Z             },
2026-06-19T05:17:21.6333982Z             {
2026-06-19T05:17:21.6334103Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6334198Z               "line": 97
2026-06-19T05:17:21.6334283Z             },
2026-06-19T05:17:21.6334364Z             {
2026-06-19T05:17:21.6334489Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6334569Z               "line": 159
2026-06-19T05:17:21.6334655Z             },
2026-06-19T05:17:21.6334737Z             {
2026-06-19T05:17:21.6334865Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6334955Z               "line": 175
2026-06-19T05:17:21.6335033Z             },
2026-06-19T05:17:21.6335123Z             {
2026-06-19T05:17:21.6335242Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6335318Z               "line": 190
2026-06-19T05:17:21.6335405Z             },
2026-06-19T05:17:21.6335489Z             {
2026-06-19T05:17:21.6335608Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6335689Z               "line": 271
2026-06-19T05:17:21.6335778Z             },
2026-06-19T05:17:21.6335863Z             {
2026-06-19T05:17:21.6335982Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6336073Z               "line": 306
2026-06-19T05:17:21.6336149Z             },
2026-06-19T05:17:21.6336234Z             {
2026-06-19T05:17:21.6336360Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6336454Z               "line": 312
2026-06-19T05:17:21.6336539Z             },
2026-06-19T05:17:21.6336622Z             {
2026-06-19T05:17:21.6336745Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6336835Z               "line": 318
2026-06-19T05:17:21.6336932Z             },
2026-06-19T05:17:21.6337017Z             {
2026-06-19T05:17:21.6337141Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6337226Z               "line": 334
2026-06-19T05:17:21.6337318Z             },
2026-06-19T05:17:21.6337408Z             {
2026-06-19T05:17:21.6337532Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6337623Z               "line": 354
2026-06-19T05:17:21.6337771Z             },
2026-06-19T05:17:21.6337856Z             {
2026-06-19T05:17:21.6337976Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:17:21.6338075Z               "line": 35
2026-06-19T05:17:21.6338162Z             },
2026-06-19T05:17:21.6338243Z             {
2026-06-19T05:17:21.6338366Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:17:21.6338442Z               "line": 85
2026-06-19T05:17:21.6338523Z             },
2026-06-19T05:17:21.6338608Z             {
2026-06-19T05:17:21.6338806Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.6338887Z               "line": 138
2026-06-19T05:17:21.6339030Z             },
2026-06-19T05:17:21.6339116Z             {
2026-06-19T05:17:21.6339232Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6339327Z               "line": 2829
2026-06-19T05:17:21.6339407Z             },
2026-06-19T05:17:21.6339494Z             {
2026-06-19T05:17:21.6339607Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6339688Z               "line": 17
2026-06-19T05:17:21.6339769Z             }
2026-06-19T05:17:21.6339856Z           ]
2026-06-19T05:17:21.6339941Z         },
2026-06-19T05:17:21.6340027Z         "int": {
2026-06-19T05:17:21.6340123Z           "complete": true,
2026-06-19T05:17:21.6340214Z           "evidence": [
2026-06-19T05:17:21.6340298Z             {
2026-06-19T05:17:21.6340428Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6340515Z               "line": 341
2026-06-19T05:17:21.6340603Z             },
2026-06-19T05:17:21.6340690Z             {
2026-06-19T05:17:21.6340815Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6340909Z               "line": 674
2026-06-19T05:17:21.6340994Z             },
2026-06-19T05:17:21.6341080Z             {
2026-06-19T05:17:21.6341193Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6341292Z               "line": 972
2026-06-19T05:17:21.6341372Z             }
2026-06-19T05:17:21.6341459Z           ]
2026-06-19T05:17:21.6341541Z         },
2026-06-19T05:17:21.6341625Z         "unit": {
2026-06-19T05:17:21.6341716Z           "complete": true,
2026-06-19T05:17:21.6341803Z           "evidence": [
2026-06-19T05:17:21.6341893Z             {
2026-06-19T05:17:21.6342002Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6342099Z               "line": 651
2026-06-19T05:17:21.6342189Z             },
2026-06-19T05:17:21.6342279Z             {
2026-06-19T05:17:21.6342404Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6342493Z               "line": 686
2026-06-19T05:17:21.6342570Z             },
2026-06-19T05:17:21.6342665Z             {
2026-06-19T05:17:21.6342789Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6342885Z               "line": 938
2026-06-19T05:17:21.6342960Z             },
2026-06-19T05:17:21.6343048Z             {
2026-06-19T05:17:21.6343161Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:17:21.6343247Z               "line": 201
2026-06-19T05:17:21.6343329Z             },
2026-06-19T05:17:21.6343414Z             {
2026-06-19T05:17:21.6343528Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6343615Z               "line": 442
2026-06-19T05:17:21.6343697Z             },
2026-06-19T05:17:21.6343785Z             {
2026-06-19T05:17:21.6343908Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6344000Z               "line": 456
2026-06-19T05:17:21.6344081Z             },
2026-06-19T05:17:21.6344176Z             {
2026-06-19T05:17:21.6344285Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6344367Z               "line": 475
2026-06-19T05:17:21.6344453Z             },
2026-06-19T05:17:21.6344533Z             {
2026-06-19T05:17:21.6344649Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:17:21.6344734Z               "line": 120
2026-06-19T05:17:21.6344924Z             },
2026-06-19T05:17:21.6345006Z             {
2026-06-19T05:17:21.6345125Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:17:21.6345215Z               "line": 163
2026-06-19T05:17:21.6345297Z             },
2026-06-19T05:17:21.6345382Z             {
2026-06-19T05:17:21.6345506Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:17:21.6345608Z               "line": 530
2026-06-19T05:17:21.6345688Z             },
2026-06-19T05:17:21.6345874Z             {
2026-06-19T05:17:21.6345988Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6346082Z               "line": 616
2026-06-19T05:17:21.6346172Z             },
2026-06-19T05:17:21.6346258Z             {
2026-06-19T05:17:21.6346371Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6346461Z               "line": 1006
2026-06-19T05:17:21.6346552Z             }
2026-06-19T05:17:21.6346638Z           ]
2026-06-19T05:17:21.6346733Z         }
2026-06-19T05:17:21.6346823Z       }
2026-06-19T05:17:21.6346900Z     },
2026-06-19T05:17:21.6346991Z     {
2026-06-19T05:17:21.6347080Z       "id": "REQ-NET-2",
2026-06-19T05:17:21.6347258Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-19T05:17:21.6347353Z       "requiredStages": [
2026-06-19T05:17:21.6347433Z         "impl"
2026-06-19T05:17:21.6347520Z       ],
2026-06-19T05:17:21.6347606Z       "stages": {
2026-06-19T05:17:21.6347692Z         "doc": {
2026-06-19T05:17:21.6347791Z           "complete": false,
2026-06-19T05:17:21.6347883Z           "evidence": []
2026-06-19T05:17:21.6347968Z         },
2026-06-19T05:17:21.6348053Z         "impl": {
2026-06-19T05:17:21.6348150Z           "complete": true,
2026-06-19T05:17:21.6348231Z           "evidence": [
2026-06-19T05:17:21.6348321Z             {
2026-06-19T05:17:21.6348426Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.6348522Z               "line": 57
2026-06-19T05:17:21.6348602Z             },
2026-06-19T05:17:21.6348688Z             {
2026-06-19T05:17:21.6348813Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6348903Z               "line": 71
2026-06-19T05:17:21.6349087Z             },
2026-06-19T05:17:21.6349173Z             {
2026-06-19T05:17:21.6349290Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6349380Z               "line": 81
2026-06-19T05:17:21.6349472Z             },
2026-06-19T05:17:21.6349553Z             {
2026-06-19T05:17:21.6349671Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6349768Z               "line": 159
2026-06-19T05:17:21.6349853Z             },
2026-06-19T05:17:21.6349952Z             {
2026-06-19T05:17:21.6350068Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6350149Z               "line": 175
2026-06-19T05:17:21.6350230Z             },
2026-06-19T05:17:21.6350310Z             {
2026-06-19T05:17:21.6350431Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:17:21.6350515Z               "line": 190
2026-06-19T05:17:21.6350611Z             }
2026-06-19T05:17:21.6350693Z           ]
2026-06-19T05:17:21.6350774Z         },
2026-06-19T05:17:21.6350858Z         "int": {
2026-06-19T05:17:21.6350954Z           "complete": false,
2026-06-19T05:17:21.6351051Z           "evidence": []
2026-06-19T05:17:21.6351140Z         },
2026-06-19T05:17:21.6351226Z         "unit": {
2026-06-19T05:17:21.6351323Z           "complete": true,
2026-06-19T05:17:21.6351413Z           "evidence": [
2026-06-19T05:17:21.6351492Z             {
2026-06-19T05:17:21.6351601Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.6351697Z               "line": 402
2026-06-19T05:17:21.6351782Z             }
2026-06-19T05:17:21.6351866Z           ]
2026-06-19T05:17:21.6351952Z         }
2026-06-19T05:17:21.6352024Z       }
2026-06-19T05:17:21.6352106Z     },
2026-06-19T05:17:21.6352190Z     {
2026-06-19T05:17:21.6352391Z       "id": "REQ-NET-3",
2026-06-19T05:17:21.6352576Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-19T05:17:21.6352678Z       "requiredStages": [
2026-06-19T05:17:21.6352768Z         "impl",
2026-06-19T05:17:21.6352839Z         "unit"
2026-06-19T05:17:21.6352926Z       ],
2026-06-19T05:17:21.6353011Z       "stages": {
2026-06-19T05:17:21.6353097Z         "doc": {
2026-06-19T05:17:21.6353182Z           "complete": false,
2026-06-19T05:17:21.6353269Z           "evidence": []
2026-06-19T05:17:21.6353449Z         },
2026-06-19T05:17:21.6353535Z         "impl": {
2026-06-19T05:17:21.6353622Z           "complete": true,
2026-06-19T05:17:21.6353716Z           "evidence": [
2026-06-19T05:17:21.6353807Z             {
2026-06-19T05:17:21.6353923Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.6354007Z               "line": 39
2026-06-19T05:17:21.6354093Z             },
2026-06-19T05:17:21.6354180Z             {
2026-06-19T05:17:21.6354290Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.6354369Z               "line": 182
2026-06-19T05:17:21.6354463Z             },
2026-06-19T05:17:21.6354540Z             {
2026-06-19T05:17:21.6354646Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:17:21.6354740Z               "line": 333
2026-06-19T05:17:21.6354812Z             },
2026-06-19T05:17:21.6354899Z             {
2026-06-19T05:17:21.6355008Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:17:21.6355098Z               "line": 36
2026-06-19T05:17:21.6355180Z             },
2026-06-19T05:17:21.6355270Z             {
2026-06-19T05:17:21.6355403Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6355489Z               "line": 158
2026-06-19T05:17:21.6355580Z             },
2026-06-19T05:17:21.6355661Z             {
2026-06-19T05:17:21.6355795Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6355885Z               "line": 238
2026-06-19T05:17:21.6355966Z             },
2026-06-19T05:17:21.6356052Z             {
2026-06-19T05:17:21.6356173Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6356266Z               "line": 259
2026-06-19T05:17:21.6356352Z             },
2026-06-19T05:17:21.6356439Z             {
2026-06-19T05:17:21.6356558Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6356652Z               "line": 317
2026-06-19T05:17:21.6356742Z             },
2026-06-19T05:17:21.6356837Z             {
2026-06-19T05:17:21.6356960Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6357049Z               "line": 336
2026-06-19T05:17:21.6357141Z             },
2026-06-19T05:17:21.6357227Z             {
2026-06-19T05:17:21.6357350Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6357451Z               "line": 374
2026-06-19T05:17:21.6357537Z             },
2026-06-19T05:17:21.6357627Z             {
2026-06-19T05:17:21.6357752Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6357847Z               "line": 419
2026-06-19T05:17:21.6357937Z             },
2026-06-19T05:17:21.6358028Z             {
2026-06-19T05:17:21.6358152Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6358242Z               "line": 432
2026-06-19T05:17:21.6358337Z             },
2026-06-19T05:17:21.6358419Z             {
2026-06-19T05:17:21.6358547Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.6358647Z               "line": 29
2026-06-19T05:17:21.6358734Z             },
2026-06-19T05:17:21.6358824Z             {
2026-06-19T05:17:21.6359030Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.6359120Z               "line": 72
2026-06-19T05:17:21.6359200Z             },
2026-06-19T05:17:21.6359292Z             {
2026-06-19T05:17:21.6359425Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.6359514Z               "line": 123
2026-06-19T05:17:21.6359714Z             }
2026-06-19T05:17:21.6359808Z           ]
2026-06-19T05:17:21.6359897Z         },
2026-06-19T05:17:21.6359984Z         "int": {
2026-06-19T05:17:21.6360089Z           "complete": false,
2026-06-19T05:17:21.6360184Z           "evidence": []
2026-06-19T05:17:21.6360269Z         },
2026-06-19T05:17:21.6360366Z         "unit": {
2026-06-19T05:17:21.6360452Z           "complete": true,
2026-06-19T05:17:21.6360541Z           "evidence": [
2026-06-19T05:17:21.6360719Z             {
2026-06-19T05:17:21.6360846Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:17:21.6360933Z               "line": 223
2026-06-19T05:17:21.6361010Z             },
2026-06-19T05:17:21.6361095Z             {
2026-06-19T05:17:21.6361214Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:17:21.6361301Z               "line": 351
2026-06-19T05:17:21.6361381Z             },
2026-06-19T05:17:21.6361467Z             {
2026-06-19T05:17:21.6361587Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:17:21.6361673Z               "line": 504
2026-06-19T05:17:21.6361762Z             },
2026-06-19T05:17:21.6361844Z             {
2026-06-19T05:17:21.6361964Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:17:21.6362039Z               "line": 93
2026-06-19T05:17:21.6362129Z             },
2026-06-19T05:17:21.6362214Z             {
2026-06-19T05:17:21.6362328Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:17:21.6362426Z               "line": 142
2026-06-19T05:17:21.6362502Z             },
2026-06-19T05:17:21.6362584Z             {
2026-06-19T05:17:21.6362708Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.6362798Z               "line": 315
2026-06-19T05:17:21.6362890Z             },
2026-06-19T05:17:21.6362970Z             {
2026-06-19T05:17:21.6363089Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.6363176Z               "line": 355
2026-06-19T05:17:21.6363266Z             },
2026-06-19T05:17:21.6363347Z             {
2026-06-19T05:17:21.6363466Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:17:21.6363562Z               "line": 494
2026-06-19T05:17:21.6363637Z             }
2026-06-19T05:17:21.6363728Z           ]
2026-06-19T05:17:21.6363810Z         }
2026-06-19T05:17:21.6363896Z       }
2026-06-19T05:17:21.6363977Z     },
2026-06-19T05:17:21.6364057Z     {
2026-06-19T05:17:21.6364168Z       "id": "REQ-NODE-IDENTITY",
2026-06-19T05:17:21.6364420Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-19T05:17:21.6364521Z       "requiredStages": [
2026-06-19T05:17:21.6364600Z         "impl",
2026-06-19T05:17:21.6364682Z         "unit"
2026-06-19T05:17:21.6364765Z       ],
2026-06-19T05:17:21.6364855Z       "stages": {
2026-06-19T05:17:21.6364948Z         "doc": {
2026-06-19T05:17:21.6365038Z           "complete": false,
2026-06-19T05:17:21.6365139Z           "evidence": []
2026-06-19T05:17:21.6365221Z         },
2026-06-19T05:17:21.6365315Z         "impl": {
2026-06-19T05:17:21.6365401Z           "complete": true,
2026-06-19T05:17:21.6365497Z           "evidence": [
2026-06-19T05:17:21.6365577Z             {
2026-06-19T05:17:21.6365706Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6365797Z               "line": 60
2026-06-19T05:17:21.6365883Z             },
2026-06-19T05:17:21.6365958Z             {
2026-06-19T05:17:21.6366084Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6366164Z               "line": 68
2026-06-19T05:17:21.6366259Z             },
2026-06-19T05:17:21.6366340Z             {
2026-06-19T05:17:21.6366460Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6366545Z               "line": 86
2026-06-19T05:17:21.6366622Z             },
2026-06-19T05:17:21.6366704Z             {
2026-06-19T05:17:21.6366822Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6366994Z               "line": 120
2026-06-19T05:17:21.6367076Z             },
2026-06-19T05:17:21.6367160Z             {
2026-06-19T05:17:21.6367278Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6367379Z               "line": 127
2026-06-19T05:17:21.6367463Z             },
2026-06-19T05:17:21.6367548Z             {
2026-06-19T05:17:21.6367667Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6367754Z               "line": 143
2026-06-19T05:17:21.6367924Z             },
2026-06-19T05:17:21.6368006Z             {
2026-06-19T05:17:21.6368120Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:17:21.6368215Z               "line": 16
2026-06-19T05:17:21.6368292Z             }
2026-06-19T05:17:21.6368374Z           ]
2026-06-19T05:17:21.6368459Z         },
2026-06-19T05:17:21.6368544Z         "int": {
2026-06-19T05:17:21.6368646Z           "complete": false,
2026-06-19T05:17:21.6368741Z           "evidence": []
2026-06-19T05:17:21.6368840Z         },
2026-06-19T05:17:21.6368922Z         "unit": {
2026-06-19T05:17:21.6369088Z           "complete": true,
2026-06-19T05:17:21.6369174Z           "evidence": [
2026-06-19T05:17:21.6369256Z             {
2026-06-19T05:17:21.6369384Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6369470Z               "line": 199
2026-06-19T05:17:21.6369556Z             },
2026-06-19T05:17:21.6369623Z             {
2026-06-19T05:17:21.6369751Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6369837Z               "line": 218
2026-06-19T05:17:21.6369920Z             },
2026-06-19T05:17:21.6370004Z             {
2026-06-19T05:17:21.6370126Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6370212Z               "line": 234
2026-06-19T05:17:21.6370302Z             },
2026-06-19T05:17:21.6372846Z             {
2026-06-19T05:17:21.6372996Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:17:21.6373101Z               "line": 256
2026-06-19T05:17:21.6373187Z             },
2026-06-19T05:17:21.6373268Z             {
2026-06-19T05:17:21.6373387Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:17:21.6373474Z               "line": 124
2026-06-19T05:17:21.6373555Z             },
2026-06-19T05:17:21.6373639Z             {
2026-06-19T05:17:21.6373755Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:17:21.6373841Z               "line": 140
2026-06-19T05:17:21.6373931Z             },
2026-06-19T05:17:21.6374012Z             {
2026-06-19T05:17:21.6374122Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:17:21.6374212Z               "line": 155
2026-06-19T05:17:21.6374298Z             }
2026-06-19T05:17:21.6374375Z           ]
2026-06-19T05:17:21.6374461Z         }
2026-06-19T05:17:21.6374542Z       }
2026-06-19T05:17:21.6374622Z     },
2026-06-19T05:17:21.6374704Z     {
2026-06-19T05:17:21.6374804Z       "id": "REQ-NOTIF-1",
2026-06-19T05:17:21.6375165Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-19T05:17:21.6375266Z       "requiredStages": [
2026-06-19T05:17:21.6375348Z         "impl",
2026-06-19T05:17:21.6375438Z         "unit",
2026-06-19T05:17:21.6375527Z         "int"
2026-06-19T05:17:21.6375608Z       ],
2026-06-19T05:17:21.6375699Z       "stages": {
2026-06-19T05:17:21.6375781Z         "doc": {
2026-06-19T05:17:21.6375875Z           "complete": false,
2026-06-19T05:17:21.6375961Z           "evidence": []
2026-06-19T05:17:21.6376043Z         },
2026-06-19T05:17:21.6376124Z         "impl": {
2026-06-19T05:17:21.6376218Z           "complete": true,
2026-06-19T05:17:21.6376320Z           "evidence": [
2026-06-19T05:17:21.6376395Z             {
2026-06-19T05:17:21.6376523Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6376615Z               "line": 514
2026-06-19T05:17:21.6376705Z             },
2026-06-19T05:17:21.6376920Z             {
2026-06-19T05:17:21.6377039Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6377129Z               "line": 30
2026-06-19T05:17:21.6377210Z             },
2026-06-19T05:17:21.6377293Z             {
2026-06-19T05:17:21.6377396Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6377491Z               "line": 69
2026-06-19T05:17:21.6377574Z             },
2026-06-19T05:17:21.6377655Z             {
2026-06-19T05:17:21.6377867Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6377953Z               "line": 93
2026-06-19T05:17:21.6378037Z             },
2026-06-19T05:17:21.6378123Z             {
2026-06-19T05:17:21.6378232Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6378329Z               "line": 107
2026-06-19T05:17:21.6378413Z             },
2026-06-19T05:17:21.6378494Z             {
2026-06-19T05:17:21.6378600Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6378699Z               "line": 142
2026-06-19T05:17:21.6378785Z             },
2026-06-19T05:17:21.6378872Z             {
2026-06-19T05:17:21.6379057Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6379143Z               "line": 187
2026-06-19T05:17:21.6379225Z             },
2026-06-19T05:17:21.6379310Z             {
2026-06-19T05:17:21.6379429Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6379516Z               "line": 258
2026-06-19T05:17:21.6379596Z             },
2026-06-19T05:17:21.6379677Z             {
2026-06-19T05:17:21.6379792Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6379887Z               "line": 372
2026-06-19T05:17:21.6379972Z             },
2026-06-19T05:17:21.6380054Z             {
2026-06-19T05:17:21.6380170Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6380258Z               "line": 479
2026-06-19T05:17:21.6380335Z             },
2026-06-19T05:17:21.6380427Z             {
2026-06-19T05:17:21.6380545Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6380625Z               "line": 24
2026-06-19T05:17:21.6380710Z             },
2026-06-19T05:17:21.6380792Z             {
2026-06-19T05:17:21.6380914Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6381008Z               "line": 34
2026-06-19T05:17:21.6381080Z             },
2026-06-19T05:17:21.6381172Z             {
2026-06-19T05:17:21.6381295Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6381385Z               "line": 60
2026-06-19T05:17:21.6381467Z             },
2026-06-19T05:17:21.6381558Z             {
2026-06-19T05:17:21.6381675Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6381763Z               "line": 82
2026-06-19T05:17:21.6381848Z             },
2026-06-19T05:17:21.6381933Z             {
2026-06-19T05:17:21.6382053Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6382139Z               "line": 94
2026-06-19T05:17:21.6382220Z             },
2026-06-19T05:17:21.6382305Z             {
2026-06-19T05:17:21.6382416Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.6382506Z               "line": 96
2026-06-19T05:17:21.6382592Z             },
2026-06-19T05:17:21.6382673Z             {
2026-06-19T05:17:21.6382802Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-19T05:17:21.6382882Z               "line": 44
2026-06-19T05:17:21.6382974Z             },
2026-06-19T05:17:21.6383055Z             {
2026-06-19T05:17:21.6383173Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:17:21.6383263Z               "line": 20
2026-06-19T05:17:21.6383354Z             },
2026-06-19T05:17:21.6383434Z             {
2026-06-19T05:17:21.6383546Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:17:21.6383637Z               "line": 30
2026-06-19T05:17:21.6383719Z             },
2026-06-19T05:17:21.6383909Z             {
2026-06-19T05:17:21.6384015Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:17:21.6384110Z               "line": 50
2026-06-19T05:17:21.6384199Z             },
2026-06-19T05:17:21.6384281Z             {
2026-06-19T05:17:21.6384391Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6384472Z               "line": 28
2026-06-19T05:17:21.6384557Z             },
2026-06-19T05:17:21.6384644Z             {
2026-06-19T05:17:21.6384853Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6384950Z               "line": 126
2026-06-19T05:17:21.6385035Z             },
2026-06-19T05:17:21.6385116Z             {
2026-06-19T05:17:21.6385216Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6385312Z               "line": 161
2026-06-19T05:17:21.6385397Z             },
2026-06-19T05:17:21.6385478Z             {
2026-06-19T05:17:21.6385589Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6385683Z               "line": 202
2026-06-19T05:17:21.6385759Z             },
2026-06-19T05:17:21.6385841Z             {
2026-06-19T05:17:21.6385956Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6386050Z               "line": 213
2026-06-19T05:17:21.6386139Z             },
2026-06-19T05:17:21.6386221Z             {
2026-06-19T05:17:21.6386332Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6386425Z               "line": 238
2026-06-19T05:17:21.6386506Z             },
2026-06-19T05:17:21.6386589Z             {
2026-06-19T05:17:21.6386708Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6386793Z               "line": 261
2026-06-19T05:17:21.6386880Z             },
2026-06-19T05:17:21.6386965Z             {
2026-06-19T05:17:21.6387083Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6387170Z               "line": 82
2026-06-19T05:17:21.6387256Z             }
2026-06-19T05:17:21.6387342Z           ]
2026-06-19T05:17:21.6387422Z         },
2026-06-19T05:17:21.6387509Z         "int": {
2026-06-19T05:17:21.6387595Z           "complete": true,
2026-06-19T05:17:21.6387690Z           "evidence": [
2026-06-19T05:17:21.6387775Z             {
2026-06-19T05:17:21.6387900Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6387999Z               "line": 285
2026-06-19T05:17:21.6388086Z             },
2026-06-19T05:17:21.6388163Z             {
2026-06-19T05:17:21.6388285Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:17:21.6388366Z               "line": 145
2026-06-19T05:17:21.6388447Z             },
2026-06-19T05:17:21.6388537Z             {
2026-06-19T05:17:21.6388654Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6388744Z               "line": 683
2026-06-19T05:17:21.6388836Z             },
2026-06-19T05:17:21.6388912Z             {
2026-06-19T05:17:21.6389107Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6389203Z               "line": 1101
2026-06-19T05:17:21.6389283Z             }
2026-06-19T05:17:21.6389383Z           ]
2026-06-19T05:17:21.6389466Z         },
2026-06-19T05:17:21.6389551Z         "unit": {
2026-06-19T05:17:21.6389645Z           "complete": true,
2026-06-19T05:17:21.6389727Z           "evidence": [
2026-06-19T05:17:21.6389809Z             {
2026-06-19T05:17:21.6389927Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6390027Z               "line": 572
2026-06-19T05:17:21.6390109Z             },
2026-06-19T05:17:21.6390194Z             {
2026-06-19T05:17:21.6390309Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6390410Z               "line": 636
2026-06-19T05:17:21.6390494Z             },
2026-06-19T05:17:21.6390580Z             {
2026-06-19T05:17:21.6390696Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6390781Z               "line": 740
2026-06-19T05:17:21.6390967Z             },
2026-06-19T05:17:21.6391054Z             {
2026-06-19T05:17:21.6391166Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6391265Z               "line": 772
2026-06-19T05:17:21.6391347Z             },
2026-06-19T05:17:21.6391423Z             {
2026-06-19T05:17:21.6391526Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6391606Z               "line": 840
2026-06-19T05:17:21.6391693Z             },
2026-06-19T05:17:21.6391775Z             {
2026-06-19T05:17:21.6391989Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6392089Z               "line": 898
2026-06-19T05:17:21.6392169Z             },
2026-06-19T05:17:21.6392255Z             {
2026-06-19T05:17:21.6392361Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6392451Z               "line": 1173
2026-06-19T05:17:21.6392541Z             },
2026-06-19T05:17:21.6392618Z             {
2026-06-19T05:17:21.6392737Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6392832Z               "line": 157
2026-06-19T05:17:21.6392914Z             },
2026-06-19T05:17:21.6392995Z             {
2026-06-19T05:17:21.6393109Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6393194Z               "line": 250
2026-06-19T05:17:21.6393277Z             },
2026-06-19T05:17:21.6393362Z             {
2026-06-19T05:17:21.6393476Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:17:21.6393568Z               "line": 273
2026-06-19T05:17:21.6393653Z             },
2026-06-19T05:17:21.6393738Z             {
2026-06-19T05:17:21.6393866Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.6393947Z               "line": 355
2026-06-19T05:17:21.6394031Z             },
2026-06-19T05:17:21.6394116Z             {
2026-06-19T05:17:21.6394236Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:17:21.6394327Z               "line": 392
2026-06-19T05:17:21.6394412Z             },
2026-06-19T05:17:21.6394498Z             {
2026-06-19T05:17:21.6394618Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-19T05:17:21.6394703Z               "line": 131
2026-06-19T05:17:21.6394783Z             },
2026-06-19T05:17:21.6394871Z             {
2026-06-19T05:17:21.6394989Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:17:21.6395075Z               "line": 72
2026-06-19T05:17:21.6395166Z             },
2026-06-19T05:17:21.6395247Z             {
2026-06-19T05:17:21.6395357Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:17:21.6395442Z               "line": 97
2026-06-19T05:17:21.6395529Z             },
2026-06-19T05:17:21.6395619Z             {
2026-06-19T05:17:21.6395728Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6395825Z               "line": 379
2026-06-19T05:17:21.6395914Z             },
2026-06-19T05:17:21.6395995Z             {
2026-06-19T05:17:21.6396110Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6396197Z               "line": 417
2026-06-19T05:17:21.6396271Z             },
2026-06-19T05:17:21.6396363Z             {
2026-06-19T05:17:21.6396478Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6396577Z               "line": 433
2026-06-19T05:17:21.6396657Z             },
2026-06-19T05:17:21.6396742Z             {
2026-06-19T05:17:21.6396853Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6396948Z               "line": 472
2026-06-19T05:17:21.6397033Z             },
2026-06-19T05:17:21.6397115Z             {
2026-06-19T05:17:21.6397225Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6397319Z               "line": 489
2026-06-19T05:17:21.6397401Z             },
2026-06-19T05:17:21.6397483Z             {
2026-06-19T05:17:21.6397601Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6397692Z               "line": 517
2026-06-19T05:17:21.6397868Z             },
2026-06-19T05:17:21.6397944Z             {
2026-06-19T05:17:21.6398050Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:17:21.6398131Z               "line": 548
2026-06-19T05:17:21.6398216Z             },
2026-06-19T05:17:21.6398297Z             {
2026-06-19T05:17:21.6398422Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6398498Z               "line": 741
2026-06-19T05:17:21.6398583Z             }
2026-06-19T05:17:21.6398737Z           ]
2026-06-19T05:17:21.6398826Z         }
2026-06-19T05:17:21.6398902Z       }
2026-06-19T05:17:21.6399059Z     },
2026-06-19T05:17:21.6399139Z     {
2026-06-19T05:17:21.6399228Z       "id": "REQ-NOTIF-2",
2026-06-19T05:17:21.6399505Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-19T05:17:21.6399600Z       "requiredStages": [
2026-06-19T05:17:21.6399691Z         "doc",
2026-06-19T05:17:21.6399777Z         "impl",
2026-06-19T05:17:21.6399872Z         "unit",
2026-06-19T05:17:21.6399953Z         "int"
2026-06-19T05:17:21.6400031Z       ],
2026-06-19T05:17:21.6400116Z       "stages": {
2026-06-19T05:17:21.6400196Z         "doc": {
2026-06-19T05:17:21.6400293Z           "complete": true,
2026-06-19T05:17:21.6400378Z           "evidence": [
2026-06-19T05:17:21.6400455Z             {
2026-06-19T05:17:21.6400559Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6400641Z               "line": 506
2026-06-19T05:17:21.6400721Z             },
2026-06-19T05:17:21.6400802Z             {
2026-06-19T05:17:21.6400902Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.6400994Z               "line": 98
2026-06-19T05:17:21.6401073Z             }
2026-06-19T05:17:21.6401154Z           ]
2026-06-19T05:17:21.6401237Z         },
2026-06-19T05:17:21.6401323Z         "impl": {
2026-06-19T05:17:21.6401421Z           "complete": true,
2026-06-19T05:17:21.6401513Z           "evidence": [
2026-06-19T05:17:21.6401590Z             {
2026-06-19T05:17:21.6401712Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6401803Z               "line": 287
2026-06-19T05:17:21.6401888Z             },
2026-06-19T05:17:21.6401969Z             {
2026-06-19T05:17:21.6402072Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6402161Z               "line": 301
2026-06-19T05:17:21.6402244Z             },
2026-06-19T05:17:21.6402330Z             {
2026-06-19T05:17:21.6402448Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6402520Z               "line": 326
2026-06-19T05:17:21.6402611Z             },
2026-06-19T05:17:21.6402692Z             {
2026-06-19T05:17:21.6402820Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6402903Z               "line": 210
2026-06-19T05:17:21.6402983Z             },
2026-06-19T05:17:21.6403063Z             {
2026-06-19T05:17:21.6403178Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6403269Z               "line": 91
2026-06-19T05:17:21.6403354Z             },
2026-06-19T05:17:21.6403435Z             {
2026-06-19T05:17:21.6403542Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6403621Z               "line": 2101
2026-06-19T05:17:21.6403707Z             },
2026-06-19T05:17:21.6403808Z             {
2026-06-19T05:17:21.6403931Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6404041Z               "line": 2150
2026-06-19T05:17:21.6404137Z             },
2026-06-19T05:17:21.6404228Z             {
2026-06-19T05:17:21.6404336Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6404431Z               "line": 2229
2026-06-19T05:17:21.6404507Z             },
2026-06-19T05:17:21.6404605Z             {
2026-06-19T05:17:21.6404709Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6404806Z               "line": 2268
2026-06-19T05:17:21.6404892Z             }
2026-06-19T05:17:21.6404977Z           ]
2026-06-19T05:17:21.6405063Z         },
2026-06-19T05:17:21.6405249Z         "int": {
2026-06-19T05:17:21.6405348Z           "complete": true,
2026-06-19T05:17:21.6405431Z           "evidence": [
2026-06-19T05:17:21.6405516Z             {
2026-06-19T05:17:21.6405635Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6405726Z               "line": 809
2026-06-19T05:17:21.6405802Z             },
2026-06-19T05:17:21.6405883Z             {
2026-06-19T05:17:21.6406007Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6406198Z               "line": 1344
2026-06-19T05:17:21.6406288Z             }
2026-06-19T05:17:21.6406370Z           ]
2026-06-19T05:17:21.6406460Z         },
2026-06-19T05:17:21.6406545Z         "unit": {
2026-06-19T05:17:21.6406641Z           "complete": true,
2026-06-19T05:17:21.6406728Z           "evidence": [
2026-06-19T05:17:21.6406808Z             {
2026-06-19T05:17:21.6406928Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6407024Z               "line": 1022
2026-06-19T05:17:21.6407100Z             },
2026-06-19T05:17:21.6407184Z             {
2026-06-19T05:17:21.6407288Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6407384Z               "line": 1090
2026-06-19T05:17:21.6407466Z             },
2026-06-19T05:17:21.6407551Z             {
2026-06-19T05:17:21.6407646Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6407728Z               "line": 8015
2026-06-19T05:17:21.6407818Z             },
2026-06-19T05:17:21.6407908Z             {
2026-06-19T05:17:21.6408004Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6408090Z               "line": 8070
2026-06-19T05:17:21.6408175Z             }
2026-06-19T05:17:21.6408262Z           ]
2026-06-19T05:17:21.6408343Z         }
2026-06-19T05:17:21.6408433Z       }
2026-06-19T05:17:21.6408519Z     },
2026-06-19T05:17:21.6408605Z     {
2026-06-19T05:17:21.6408701Z       "id": "REQ-PAIR-1",
2026-06-19T05:17:21.6408815Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-19T05:17:21.6408915Z       "requiredStages": [
2026-06-19T05:17:21.6409077Z         "impl",
2026-06-19T05:17:21.6409158Z         "unit",
2026-06-19T05:17:21.6409244Z         "int"
2026-06-19T05:17:21.6409335Z       ],
2026-06-19T05:17:21.6409415Z       "stages": {
2026-06-19T05:17:21.6409514Z         "doc": {
2026-06-19T05:17:21.6409609Z           "complete": false,
2026-06-19T05:17:21.6409690Z           "evidence": []
2026-06-19T05:17:21.6409779Z         },
2026-06-19T05:17:21.6409869Z         "impl": {
2026-06-19T05:17:21.6409966Z           "complete": true,
2026-06-19T05:17:21.6410051Z           "evidence": [
2026-06-19T05:17:21.6410136Z             {
2026-06-19T05:17:21.6410276Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6410361Z               "line": 27
2026-06-19T05:17:21.6410446Z             },
2026-06-19T05:17:21.6410523Z             {
2026-06-19T05:17:21.6410656Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6410746Z               "line": 88
2026-06-19T05:17:21.6410838Z             },
2026-06-19T05:17:21.6410929Z             {
2026-06-19T05:17:21.6411057Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6411143Z               "line": 110
2026-06-19T05:17:21.6411229Z             },
2026-06-19T05:17:21.6411314Z             {
2026-06-19T05:17:21.6411438Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6411535Z               "line": 153
2026-06-19T05:17:21.6411633Z             },
2026-06-19T05:17:21.6411715Z             {
2026-06-19T05:17:21.6411850Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6411930Z               "line": 182
2026-06-19T05:17:21.6412016Z             },
2026-06-19T05:17:21.6412097Z             {
2026-06-19T05:17:21.6412245Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6412343Z               "line": 29
2026-06-19T05:17:21.6412429Z             },
2026-06-19T05:17:21.6412627Z             {
2026-06-19T05:17:21.6412775Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:17:21.6412861Z               "line": 31
2026-06-19T05:17:21.6412947Z             },
2026-06-19T05:17:21.6413037Z             {
2026-06-19T05:17:21.6413171Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6413252Z               "line": 44
2026-06-19T05:17:21.6413342Z             },
2026-06-19T05:17:21.6413429Z             {
2026-06-19T05:17:21.6413652Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6413739Z               "line": 171
2026-06-19T05:17:21.6413820Z             },
2026-06-19T05:17:21.6413905Z             {
2026-06-19T05:17:21.6414029Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6414116Z               "line": 376
2026-06-19T05:17:21.6414200Z             }
2026-06-19T05:17:21.6414281Z           ]
2026-06-19T05:17:21.6414369Z         },
2026-06-19T05:17:21.6414459Z         "int": {
2026-06-19T05:17:21.6414558Z           "complete": true,
2026-06-19T05:17:21.6414635Z           "evidence": [
2026-06-19T05:17:21.6414717Z             {
2026-06-19T05:17:21.6414839Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6414929Z               "line": 644
2026-06-19T05:17:21.6415010Z             },
2026-06-19T05:17:21.6415091Z             {
2026-06-19T05:17:21.6415218Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6415308Z               "line": 886
2026-06-19T05:17:21.6415394Z             }
2026-06-19T05:17:21.6415471Z           ]
2026-06-19T05:17:21.6415561Z         },
2026-06-19T05:17:21.6415652Z         "unit": {
2026-06-19T05:17:21.6415743Z           "complete": true,
2026-06-19T05:17:21.6415837Z           "evidence": [
2026-06-19T05:17:21.6415923Z             {
2026-06-19T05:17:21.6416062Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6416157Z               "line": 236
2026-06-19T05:17:21.6416252Z             },
2026-06-19T05:17:21.6416344Z             {
2026-06-19T05:17:21.6416467Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:17:21.6416562Z               "line": 349
2026-06-19T05:17:21.6416640Z             },
2026-06-19T05:17:21.6416720Z             {
2026-06-19T05:17:21.6416848Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6416940Z               "line": 194
2026-06-19T05:17:21.6417030Z             },
2026-06-19T05:17:21.6417111Z             {
2026-06-19T05:17:21.6417240Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6417321Z               "line": 216
2026-06-19T05:17:21.6417411Z             },
2026-06-19T05:17:21.6417492Z             {
2026-06-19T05:17:21.6417627Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6417720Z               "line": 230
2026-06-19T05:17:21.6417805Z             },
2026-06-19T05:17:21.6417896Z             {
2026-06-19T05:17:21.6418017Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6418116Z               "line": 242
2026-06-19T05:17:21.6418197Z             },
2026-06-19T05:17:21.6418283Z             {
2026-06-19T05:17:21.6418411Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6418492Z               "line": 256
2026-06-19T05:17:21.6418574Z             },
2026-06-19T05:17:21.6418660Z             {
2026-06-19T05:17:21.6418792Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6418875Z               "line": 270
2026-06-19T05:17:21.6419041Z             },
2026-06-19T05:17:21.6419141Z             {
2026-06-19T05:17:21.6419266Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6419361Z               "line": 277
2026-06-19T05:17:21.6419451Z             },
2026-06-19T05:17:21.6419542Z             {
2026-06-19T05:17:21.6419670Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:17:21.6419862Z               "line": 295
2026-06-19T05:17:21.6419951Z             },
2026-06-19T05:17:21.6420031Z             {
2026-06-19T05:17:21.6420156Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6420241Z               "line": 968
2026-06-19T05:17:21.6420330Z             },
2026-06-19T05:17:21.6420420Z             {
2026-06-19T05:17:21.6420545Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6420749Z               "line": 1051
2026-06-19T05:17:21.6420831Z             },
2026-06-19T05:17:21.6420917Z             {
2026-06-19T05:17:21.6421035Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6421127Z               "line": 1121
2026-06-19T05:17:21.6421217Z             },
2026-06-19T05:17:21.6421298Z             {
2026-06-19T05:17:21.6421423Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6421513Z               "line": 1182
2026-06-19T05:17:21.6421613Z             },
2026-06-19T05:17:21.6421689Z             {
2026-06-19T05:17:21.6421813Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6421908Z               "line": 1238
2026-06-19T05:17:21.6421989Z             },
2026-06-19T05:17:21.6422067Z             {
2026-06-19T05:17:21.6422212Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6422338Z               "line": 1457
2026-06-19T05:17:21.6422448Z             }
2026-06-19T05:17:21.6422576Z           ]
2026-06-19T05:17:21.6422696Z         }
2026-06-19T05:17:21.6422814Z       }
2026-06-19T05:17:21.6422941Z     },
2026-06-19T05:17:21.6423061Z     {
2026-06-19T05:17:21.6423201Z       "id": "REQ-PAIR-2",
2026-06-19T05:17:21.6423421Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-19T05:17:21.6423563Z       "requiredStages": [],
2026-06-19T05:17:21.6423684Z       "stages": {
2026-06-19T05:17:21.6423803Z         "doc": {
2026-06-19T05:17:21.6423965Z           "complete": false,
2026-06-19T05:17:21.6424093Z           "evidence": []
2026-06-19T05:17:21.6424202Z         },
2026-06-19T05:17:21.6424323Z         "impl": {
2026-06-19T05:17:21.6424470Z           "complete": false,
2026-06-19T05:17:21.6424609Z           "evidence": []
2026-06-19T05:17:21.6424723Z         },
2026-06-19T05:17:21.6424846Z         "int": {
2026-06-19T05:17:21.6424972Z           "complete": false,
2026-06-19T05:17:21.6425113Z           "evidence": []
2026-06-19T05:17:21.6425239Z         },
2026-06-19T05:17:21.6425371Z         "unit": {
2026-06-19T05:17:21.6425508Z           "complete": false,
2026-06-19T05:17:21.6425637Z           "evidence": []
2026-06-19T05:17:21.6425768Z         }
2026-06-19T05:17:21.6425897Z       }
2026-06-19T05:17:21.6426022Z     },
2026-06-19T05:17:21.6426149Z     {
2026-06-19T05:17:21.6426293Z       "id": "REQ-PAIR-3",
2026-06-19T05:17:21.6426517Z       "title": "Fetch current pairing code from any paired node",
2026-06-19T05:17:21.6426694Z       "requiredStages": [
2026-06-19T05:17:21.6426827Z         "impl",
2026-06-19T05:17:21.6426946Z         "unit"
2026-06-19T05:17:21.6427074Z       ],
2026-06-19T05:17:21.6427200Z       "stages": {
2026-06-19T05:17:21.6427333Z         "doc": {
2026-06-19T05:17:21.6427481Z           "complete": false,
2026-06-19T05:17:21.6427618Z           "evidence": []
2026-06-19T05:17:21.6427747Z         },
2026-06-19T05:17:21.6427877Z         "impl": {
2026-06-19T05:17:21.6428019Z           "complete": true,
2026-06-19T05:17:21.6428159Z           "evidence": [
2026-06-19T05:17:21.6428314Z             {
2026-06-19T05:17:21.6428486Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6428633Z               "line": 3135
2026-06-19T05:17:21.6428776Z             },
2026-06-19T05:17:21.6428901Z             {
2026-06-19T05:17:21.6429153Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6429281Z               "line": 3204
2026-06-19T05:17:21.6429430Z             },
2026-06-19T05:17:21.6429778Z             {
2026-06-19T05:17:21.6429959Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6430098Z               "line": 3585
2026-06-19T05:17:21.6430230Z             },
2026-06-19T05:17:21.6430374Z             {
2026-06-19T05:17:21.6430526Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6430677Z               "line": 4830
2026-06-19T05:17:21.6430824Z             }
2026-06-19T05:17:21.6439241Z           ]
2026-06-19T05:17:21.6439737Z         },
2026-06-19T05:17:21.6440137Z         "int": {
2026-06-19T05:17:21.6440276Z           "complete": false,
2026-06-19T05:17:21.6440390Z           "evidence": []
2026-06-19T05:17:21.6440499Z         },
2026-06-19T05:17:21.6440596Z         "unit": {
2026-06-19T05:17:21.6440715Z           "complete": true,
2026-06-19T05:17:21.6440824Z           "evidence": [
2026-06-19T05:17:21.6440920Z             {
2026-06-19T05:17:21.6441052Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6441166Z               "line": 9769
2026-06-19T05:17:21.6441276Z             },
2026-06-19T05:17:21.6441384Z             {
2026-06-19T05:17:21.6441511Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6441622Z               "line": 9984
2026-06-19T05:17:21.6441722Z             },
2026-06-19T05:17:21.6441826Z             {
2026-06-19T05:17:21.6441951Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6442065Z               "line": 10626
2026-06-19T05:17:21.6442169Z             },
2026-06-19T05:17:21.6442256Z             {
2026-06-19T05:17:21.6442375Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6442479Z               "line": 10645
2026-06-19T05:17:21.6442585Z             },
2026-06-19T05:17:21.6442676Z             {
2026-06-19T05:17:21.6442804Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6442905Z               "line": 10669
2026-06-19T05:17:21.6443004Z             },
2026-06-19T05:17:21.6443104Z             {
2026-06-19T05:17:21.6443225Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6443347Z               "line": 10688
2026-06-19T05:17:21.6443448Z             },
2026-06-19T05:17:21.6443553Z             {
2026-06-19T05:17:21.6443681Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6443787Z               "line": 10701
2026-06-19T05:17:21.6443888Z             },
2026-06-19T05:17:21.6443977Z             {
2026-06-19T05:17:21.6444105Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6444200Z               "line": 10710
2026-06-19T05:17:21.6444298Z             }
2026-06-19T05:17:21.6444398Z           ]
2026-06-19T05:17:21.6444494Z         }
2026-06-19T05:17:21.6444594Z       }
2026-06-19T05:17:21.6444684Z     },
2026-06-19T05:17:21.6444775Z     {
2026-06-19T05:17:21.6444899Z       "id": "REQ-PAIR-4",
2026-06-19T05:17:21.6445036Z       "title": "Subnet naming on first pairing",
2026-06-19T05:17:21.6445152Z       "requiredStages": [
2026-06-19T05:17:21.6445248Z         "impl",
2026-06-19T05:17:21.6445356Z         "unit"
2026-06-19T05:17:21.6445457Z       ],
2026-06-19T05:17:21.6445561Z       "stages": {
2026-06-19T05:17:21.6445661Z         "doc": {
2026-06-19T05:17:21.6445782Z           "complete": false,
2026-06-19T05:17:21.6445890Z           "evidence": []
2026-06-19T05:17:21.6445981Z         },
2026-06-19T05:17:21.6446092Z         "impl": {
2026-06-19T05:17:21.6446200Z           "complete": true,
2026-06-19T05:17:21.6446305Z           "evidence": [
2026-06-19T05:17:21.6446411Z             {
2026-06-19T05:17:21.6446562Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:17:21.6446681Z               "line": 174
2026-06-19T05:17:21.6446781Z             }
2026-06-19T05:17:21.6446884Z           ]
2026-06-19T05:17:21.6446983Z         },
2026-06-19T05:17:21.6447094Z         "int": {
2026-06-19T05:17:21.6447208Z           "complete": false,
2026-06-19T05:17:21.6447317Z           "evidence": []
2026-06-19T05:17:21.6447414Z         },
2026-06-19T05:17:21.6447514Z         "unit": {
2026-06-19T05:17:21.6447622Z           "complete": true,
2026-06-19T05:17:21.6447884Z           "evidence": [
2026-06-19T05:17:21.6447981Z             {
2026-06-19T05:17:21.6448143Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6448248Z               "line": 1294
2026-06-19T05:17:21.6448354Z             }
2026-06-19T05:17:21.6448453Z           ]
2026-06-19T05:17:21.6448558Z         }
2026-06-19T05:17:21.6448654Z       }
2026-06-19T05:17:21.6448757Z     },
2026-06-19T05:17:21.6448848Z     {
2026-06-19T05:17:21.6452768Z       "id": "REQ-PAIR-5",
2026-06-19T05:17:21.6453198Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-19T05:17:21.6453311Z       "requiredStages": [
2026-06-19T05:17:21.6453417Z         "impl",
2026-06-19T05:17:21.6453521Z         "unit",
2026-06-19T05:17:21.6453617Z         "int"
2026-06-19T05:17:21.6453713Z       ],
2026-06-19T05:17:21.6453818Z       "stages": {
2026-06-19T05:17:21.6453927Z         "doc": {
2026-06-19T05:17:21.6454052Z           "complete": false,
2026-06-19T05:17:21.6454161Z           "evidence": []
2026-06-19T05:17:21.6454251Z         },
2026-06-19T05:17:21.6454362Z         "impl": {
2026-06-19T05:17:21.6454457Z           "complete": true,
2026-06-19T05:17:21.6454556Z           "evidence": [
2026-06-19T05:17:21.6454636Z             {
2026-06-19T05:17:21.6454769Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6454863Z               "line": 44
2026-06-19T05:17:21.6454948Z             },
2026-06-19T05:17:21.6455030Z             {
2026-06-19T05:17:21.6455150Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6455235Z               "line": 96
2026-06-19T05:17:21.6455316Z             },
2026-06-19T05:17:21.6455398Z             {
2026-06-19T05:17:21.6455530Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6455611Z               "line": 107
2026-06-19T05:17:21.6455693Z             },
2026-06-19T05:17:21.6455784Z             {
2026-06-19T05:17:21.6455911Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6455999Z               "line": 124
2026-06-19T05:17:21.6456084Z             },
2026-06-19T05:17:21.6456169Z             {
2026-06-19T05:17:21.6456294Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6456385Z               "line": 155
2026-06-19T05:17:21.6456469Z             },
2026-06-19T05:17:21.6456560Z             {
2026-06-19T05:17:21.6456690Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6456779Z               "line": 195
2026-06-19T05:17:21.6456865Z             },
2026-06-19T05:17:21.6456948Z             {
2026-06-19T05:17:21.6457071Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6457165Z               "line": 251
2026-06-19T05:17:21.6457251Z             },
2026-06-19T05:17:21.6457336Z             {
2026-06-19T05:17:21.6457481Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6457582Z               "line": 33
2026-06-19T05:17:21.6457659Z             },
2026-06-19T05:17:21.6457745Z             {
2026-06-19T05:17:21.6457887Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6457974Z               "line": 45
2026-06-19T05:17:21.6458060Z             },
2026-06-19T05:17:21.6458139Z             {
2026-06-19T05:17:21.6458274Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6458350Z               "line": 59
2026-06-19T05:17:21.6458435Z             },
2026-06-19T05:17:21.6458517Z             {
2026-06-19T05:17:21.6458641Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6458732Z               "line": 376
2026-06-19T05:17:21.6458803Z             }
2026-06-19T05:17:21.6458894Z           ]
2026-06-19T05:17:21.6459065Z         },
2026-06-19T05:17:21.6459146Z         "int": {
2026-06-19T05:17:21.6459252Z           "complete": true,
2026-06-19T05:17:21.6459496Z           "evidence": [
2026-06-19T05:17:21.6459576Z             {
2026-06-19T05:17:21.6459700Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6459781Z               "line": 886
2026-06-19T05:17:21.6459863Z             },
2026-06-19T05:17:21.6459947Z             {
2026-06-19T05:17:21.6460080Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6460161Z               "line": 342
2026-06-19T05:17:21.6460337Z             }
2026-06-19T05:17:21.6460418Z           ]
2026-06-19T05:17:21.6460500Z         },
2026-06-19T05:17:21.6460586Z         "unit": {
2026-06-19T05:17:21.6460680Z           "complete": true,
2026-06-19T05:17:21.6460767Z           "evidence": [
2026-06-19T05:17:21.6460848Z             {
2026-06-19T05:17:21.6460976Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6461057Z               "line": 293
2026-06-19T05:17:21.6461149Z             },
2026-06-19T05:17:21.6461229Z             {
2026-06-19T05:17:21.6461348Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6461430Z               "line": 304
2026-06-19T05:17:21.6461515Z             },
2026-06-19T05:17:21.6461596Z             {
2026-06-19T05:17:21.6461721Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6461821Z               "line": 406
2026-06-19T05:17:21.6461901Z             },
2026-06-19T05:17:21.6461982Z             {
2026-06-19T05:17:21.6462127Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6462210Z               "line": 72
2026-06-19T05:17:21.6462296Z             },
2026-06-19T05:17:21.6462377Z             {
2026-06-19T05:17:21.6462514Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6462604Z               "line": 82
2026-06-19T05:17:21.6462685Z             },
2026-06-19T05:17:21.6462757Z             {
2026-06-19T05:17:21.6462890Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6462985Z               "line": 100
2026-06-19T05:17:21.6463067Z             },
2026-06-19T05:17:21.6463153Z             {
2026-06-19T05:17:21.6463285Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6463372Z               "line": 110
2026-06-19T05:17:21.6463457Z             },
2026-06-19T05:17:21.6463542Z             {
2026-06-19T05:17:21.6463677Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:17:21.6463767Z               "line": 125
2026-06-19T05:17:21.6463857Z             },
2026-06-19T05:17:21.6463934Z             {
2026-06-19T05:17:21.6464054Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6464139Z               "line": 1044
2026-06-19T05:17:21.6464220Z             },
2026-06-19T05:17:21.6464302Z             {
2026-06-19T05:17:21.6464425Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6464525Z               "line": 1110
2026-06-19T05:17:21.6464607Z             },
2026-06-19T05:17:21.6464688Z             {
2026-06-19T05:17:21.6464816Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6464903Z               "line": 1357
2026-06-19T05:17:21.6464985Z             }
2026-06-19T05:17:21.6465064Z           ]
2026-06-19T05:17:21.6465154Z         }
2026-06-19T05:17:21.6465239Z       }
2026-06-19T05:17:21.6465325Z     },
2026-06-19T05:17:21.6465404Z     {
2026-06-19T05:17:21.6465494Z       "id": "REQ-PAIR-6",
2026-06-19T05:17:21.6465762Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-19T05:17:21.6465847Z       "requiredStages": [
2026-06-19T05:17:21.6465939Z         "impl",
2026-06-19T05:17:21.6466024Z         "unit"
2026-06-19T05:17:21.6466109Z       ],
2026-06-19T05:17:21.6466196Z       "stages": {
2026-06-19T05:17:21.6466287Z         "doc": {
2026-06-19T05:17:21.6466386Z           "complete": false,
2026-06-19T05:17:21.6466559Z           "evidence": []
2026-06-19T05:17:21.6466644Z         },
2026-06-19T05:17:21.6466739Z         "impl": {
2026-06-19T05:17:21.6466825Z           "complete": true,
2026-06-19T05:17:21.6466916Z           "evidence": [
2026-06-19T05:17:21.6466992Z             {
2026-06-19T05:17:21.6467101Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6467198Z               "line": 3204
2026-06-19T05:17:21.6467278Z             },
2026-06-19T05:17:21.6467358Z             {
2026-06-19T05:17:21.6467532Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6467617Z               "line": 3585
2026-06-19T05:17:21.6467701Z             },
2026-06-19T05:17:21.6467782Z             {
2026-06-19T05:17:21.6467892Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.6467976Z               "line": 18
2026-06-19T05:17:21.6468061Z             },
2026-06-19T05:17:21.6468142Z             {
2026-06-19T05:17:21.6468248Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.6468333Z               "line": 49
2026-06-19T05:17:21.6468419Z             },
2026-06-19T05:17:21.6468501Z             {
2026-06-19T05:17:21.6468606Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.6468690Z               "line": 318
2026-06-19T05:17:21.6468772Z             }
2026-06-19T05:17:21.6468853Z           ]
2026-06-19T05:17:21.6468934Z         },
2026-06-19T05:17:21.6469087Z         "int": {
2026-06-19T05:17:21.6469168Z           "complete": false,
2026-06-19T05:17:21.6469263Z           "evidence": []
2026-06-19T05:17:21.6469353Z         },
2026-06-19T05:17:21.6469445Z         "unit": {
2026-06-19T05:17:21.6469540Z           "complete": true,
2026-06-19T05:17:21.6469616Z           "evidence": [
2026-06-19T05:17:21.6469697Z             {
2026-06-19T05:17:21.6469803Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6469892Z               "line": 10723
2026-06-19T05:17:21.6469973Z             },
2026-06-19T05:17:21.6470061Z             {
2026-06-19T05:17:21.6470164Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6470250Z               "line": 10740
2026-06-19T05:17:21.6470327Z             },
2026-06-19T05:17:21.6470413Z             {
2026-06-19T05:17:21.6470526Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.6470620Z               "line": 383
2026-06-19T05:17:21.6470697Z             },
2026-06-19T05:17:21.6470779Z             {
2026-06-19T05:17:21.6470888Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:17:21.6470973Z               "line": 392
2026-06-19T05:17:21.6471055Z             }
2026-06-19T05:17:21.6471136Z           ]
2026-06-19T05:17:21.6471217Z         }
2026-06-19T05:17:21.6471288Z       }
2026-06-19T05:17:21.6471370Z     },
2026-06-19T05:17:21.6471451Z     {
2026-06-19T05:17:21.6471545Z       "id": "REQ-PAIR-7",
2026-06-19T05:17:21.6471704Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-19T05:17:21.6471798Z       "requiredStages": [],
2026-06-19T05:17:21.6471888Z       "stages": {
2026-06-19T05:17:21.6471966Z         "doc": {
2026-06-19T05:17:21.6472057Z           "complete": false,
2026-06-19T05:17:21.6472142Z           "evidence": []
2026-06-19T05:17:21.6472227Z         },
2026-06-19T05:17:21.6472305Z         "impl": {
2026-06-19T05:17:21.6472395Z           "complete": false,
2026-06-19T05:17:21.6472485Z           "evidence": []
2026-06-19T05:17:21.6472567Z         },
2026-06-19T05:17:21.6472649Z         "int": {
2026-06-19T05:17:21.6472743Z           "complete": false,
2026-06-19T05:17:21.6472842Z           "evidence": []
2026-06-19T05:17:21.6472923Z         },
2026-06-19T05:17:21.6472994Z         "unit": {
2026-06-19T05:17:21.6473088Z           "complete": false,
2026-06-19T05:17:21.6473178Z           "evidence": []
2026-06-19T05:17:21.6473255Z         }
2026-06-19T05:17:21.6473336Z       }
2026-06-19T05:17:21.6473421Z     },
2026-06-19T05:17:21.6473502Z     {
2026-06-19T05:17:21.6473588Z       "id": "REQ-PAIR-8",
2026-06-19T05:17:21.6475133Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-19T05:17:21.6475234Z       "requiredStages": [
2026-06-19T05:17:21.6475419Z         "impl",
2026-06-19T05:17:21.6475501Z         "unit"
2026-06-19T05:17:21.6475582Z       ],
2026-06-19T05:17:21.6475671Z       "stages": {
2026-06-19T05:17:21.6475756Z         "doc": {
2026-06-19T05:17:21.6475847Z           "complete": false,
2026-06-19T05:17:21.6475936Z           "evidence": []
2026-06-19T05:17:21.6476026Z         },
2026-06-19T05:17:21.6476112Z         "impl": {
2026-06-19T05:17:21.6476203Z           "complete": true,
2026-06-19T05:17:21.6476293Z           "evidence": [
2026-06-19T05:17:21.6476383Z             {
2026-06-19T05:17:21.6476518Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6476603Z               "line": 577
2026-06-19T05:17:21.6476693Z             },
2026-06-19T05:17:21.6476775Z             {
2026-06-19T05:17:21.6476904Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6476994Z               "line": 22
2026-06-19T05:17:21.6477066Z             },
2026-06-19T05:17:21.6477166Z             {
2026-06-19T05:17:21.6477271Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6477366Z               "line": 76
2026-06-19T05:17:21.6477444Z             },
2026-06-19T05:17:21.6477523Z             {
2026-06-19T05:17:21.6477652Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6477729Z               "line": 127
2026-06-19T05:17:21.6477815Z             }
2026-06-19T05:17:21.6477900Z           ]
2026-06-19T05:17:21.6477981Z         },
2026-06-19T05:17:21.6478063Z         "int": {
2026-06-19T05:17:21.6478144Z           "complete": false,
2026-06-19T05:17:21.6478229Z           "evidence": []
2026-06-19T05:17:21.6478313Z         },
2026-06-19T05:17:21.6478390Z         "unit": {
2026-06-19T05:17:21.6478475Z           "complete": true,
2026-06-19T05:17:21.6478555Z           "evidence": [
2026-06-19T05:17:21.6478640Z             {
2026-06-19T05:17:21.6478750Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6478851Z               "line": 183
2026-06-19T05:17:21.6478931Z             },
2026-06-19T05:17:21.6479099Z             {
2026-06-19T05:17:21.6479217Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6479303Z               "line": 195
2026-06-19T05:17:21.6479399Z             },
2026-06-19T05:17:21.6479489Z             {
2026-06-19T05:17:21.6479608Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6479695Z               "line": 211
2026-06-19T05:17:21.6479790Z             },
2026-06-19T05:17:21.6479866Z             {
2026-06-19T05:17:21.6479981Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:17:21.6480071Z               "line": 227
2026-06-19T05:17:21.6480147Z             }
2026-06-19T05:17:21.6480233Z           ]
2026-06-19T05:17:21.6480320Z         }
2026-06-19T05:17:21.6480405Z       }
2026-06-19T05:17:21.6480486Z     },
2026-06-19T05:17:21.6480567Z     {
2026-06-19T05:17:21.6480668Z       "id": "REQ-PICKER-1",
2026-06-19T05:17:21.6484211Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
2026-06-19T05:17:21.6484521Z       "requiredStages": [
2026-06-19T05:17:21.6484607Z         "impl",
2026-06-19T05:17:21.6484686Z         "unit"
2026-06-19T05:17:21.6484764Z       ],
2026-06-19T05:17:21.6484850Z       "stages": {
2026-06-19T05:17:21.6484926Z         "doc": {
2026-06-19T05:17:21.6485025Z           "complete": false,
2026-06-19T05:17:21.6485103Z           "evidence": []
2026-06-19T05:17:21.6485184Z         },
2026-06-19T05:17:21.6485260Z         "impl": {
2026-06-19T05:17:21.6485350Z           "complete": true,
2026-06-19T05:17:21.6485432Z           "evidence": [
2026-06-19T05:17:21.6485508Z             {
2026-06-19T05:17:21.6485621Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6485708Z               "line": 239
2026-06-19T05:17:21.6485794Z             },
2026-06-19T05:17:21.6485883Z             {
2026-06-19T05:17:21.6486013Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6486100Z               "line": 237
2026-06-19T05:17:21.6486180Z             }
2026-06-19T05:17:21.6486264Z           ]
2026-06-19T05:17:21.6486345Z         },
2026-06-19T05:17:21.6486436Z         "int": {
2026-06-19T05:17:21.6486525Z           "complete": false,
2026-06-19T05:17:21.6486610Z           "evidence": []
2026-06-19T05:17:21.6486691Z         },
2026-06-19T05:17:21.6486768Z         "unit": {
2026-06-19T05:17:21.6486854Z           "complete": true,
2026-06-19T05:17:21.6486929Z           "evidence": [
2026-06-19T05:17:21.6487016Z             {
2026-06-19T05:17:21.6487120Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.6487201Z               "line": 450
2026-06-19T05:17:21.6487282Z             },
2026-06-19T05:17:21.6487364Z             {
2026-06-19T05:17:21.6487464Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6487554Z               "line": 722
2026-06-19T05:17:21.6487635Z             },
2026-06-19T05:17:21.6487717Z             {
2026-06-19T05:17:21.6487831Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6487912Z               "line": 819
2026-06-19T05:17:21.6487994Z             },
2026-06-19T05:17:21.6488079Z             {
2026-06-19T05:17:21.6488183Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6488265Z               "line": 447
2026-06-19T05:17:21.6488352Z             }
2026-06-19T05:17:21.6488436Z           ]
2026-06-19T05:17:21.6488517Z         }
2026-06-19T05:17:21.6488600Z       }
2026-06-19T05:17:21.6488681Z     },
2026-06-19T05:17:21.6488765Z     {
2026-06-19T05:17:21.6488864Z       "id": "REQ-PICKER-2",
2026-06-19T05:17:21.6490841Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
2026-06-19T05:17:21.6490951Z       "requiredStages": [
2026-06-19T05:17:21.6491041Z         "impl",
2026-06-19T05:17:21.6491242Z         "unit"
2026-06-19T05:17:21.6491322Z       ],
2026-06-19T05:17:21.6491413Z       "stages": {
2026-06-19T05:17:21.6491495Z         "doc": {
2026-06-19T05:17:21.6491590Z           "complete": false,
2026-06-19T05:17:21.6491679Z           "evidence": []
2026-06-19T05:17:21.6491760Z         },
2026-06-19T05:17:21.6491856Z         "impl": {
2026-06-19T05:17:21.6491942Z           "complete": true,
2026-06-19T05:17:21.6492036Z           "evidence": [
2026-06-19T05:17:21.6492204Z             {
2026-06-19T05:17:21.6492347Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6492432Z               "line": 183
2026-06-19T05:17:21.6492524Z             },
2026-06-19T05:17:21.6492605Z             {
2026-06-19T05:17:21.6492713Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6492805Z               "line": 254
2026-06-19T05:17:21.6492876Z             }
2026-06-19T05:17:21.6492962Z           ]
2026-06-19T05:17:21.6493042Z         },
2026-06-19T05:17:21.6493139Z         "int": {
2026-06-19T05:17:21.6493229Z           "complete": false,
2026-06-19T05:17:21.6493310Z           "evidence": []
2026-06-19T05:17:21.6493396Z         },
2026-06-19T05:17:21.6493478Z         "unit": {
2026-06-19T05:17:21.6493572Z           "complete": true,
2026-06-19T05:17:21.6493653Z           "evidence": [
2026-06-19T05:17:21.6493740Z             {
2026-06-19T05:17:21.6493867Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6493952Z               "line": 655
2026-06-19T05:17:21.6494033Z             }
2026-06-19T05:17:21.6494114Z           ]
2026-06-19T05:17:21.6494208Z         }
2026-06-19T05:17:21.6494284Z       }
2026-06-19T05:17:21.6494370Z     },
2026-06-19T05:17:21.6494452Z     {
2026-06-19T05:17:21.6494542Z       "id": "REQ-PICKER-3",
2026-06-19T05:17:21.6496986Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
2026-06-19T05:17:21.6497104Z       "requiredStages": [
2026-06-19T05:17:21.6497189Z         "impl",
2026-06-19T05:17:21.6497275Z         "unit"
2026-06-19T05:17:21.6497371Z       ],
2026-06-19T05:17:21.6497451Z       "stages": {
2026-06-19T05:17:21.6497541Z         "doc": {
2026-06-19T05:17:21.6497634Z           "complete": false,
2026-06-19T05:17:21.6497734Z           "evidence": []
2026-06-19T05:17:21.6497813Z         },
2026-06-19T05:17:21.6497900Z         "impl": {
2026-06-19T05:17:21.6497986Z           "complete": true,
2026-06-19T05:17:21.6498072Z           "evidence": [
2026-06-19T05:17:21.6498152Z             {
2026-06-19T05:17:21.6498253Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6498348Z               "line": 87
2026-06-19T05:17:21.6498429Z             }
2026-06-19T05:17:21.6498515Z           ]
2026-06-19T05:17:21.6498611Z         },
2026-06-19T05:17:21.6498681Z         "int": {
2026-06-19T05:17:21.6498787Z           "complete": false,
2026-06-19T05:17:21.6498864Z           "evidence": []
2026-06-19T05:17:21.6499024Z         },
2026-06-19T05:17:21.6499101Z         "unit": {
2026-06-19T05:17:21.6499198Z           "complete": true,
2026-06-19T05:17:21.6499288Z           "evidence": [
2026-06-19T05:17:21.6499363Z             {
2026-06-19T05:17:21.6499487Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6499689Z               "line": 324
2026-06-19T05:17:21.6499769Z             }
2026-06-19T05:17:21.6499856Z           ]
2026-06-19T05:17:21.6499938Z         }
2026-06-19T05:17:21.6500018Z       }
2026-06-19T05:17:21.6500094Z     },
2026-06-19T05:17:21.6500177Z     {
2026-06-19T05:17:21.6500267Z       "id": "REQ-PICKER-4",
2026-06-19T05:17:21.6502183Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
2026-06-19T05:17:21.6502397Z       "requiredStages": [
2026-06-19T05:17:21.6502483Z         "impl",
2026-06-19T05:17:21.6502564Z         "unit"
2026-06-19T05:17:21.6502649Z       ],
2026-06-19T05:17:21.6502731Z       "stages": {
2026-06-19T05:17:21.6502812Z         "doc": {
2026-06-19T05:17:21.6502907Z           "complete": false,
2026-06-19T05:17:21.6503002Z           "evidence": []
2026-06-19T05:17:21.6503084Z         },
2026-06-19T05:17:21.6503170Z         "impl": {
2026-06-19T05:17:21.6503259Z           "complete": true,
2026-06-19T05:17:21.6503356Z           "evidence": [
2026-06-19T05:17:21.6503441Z             {
2026-06-19T05:17:21.6503565Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6503661Z               "line": 353
2026-06-19T05:17:21.6503742Z             }
2026-06-19T05:17:21.6503837Z           ]
2026-06-19T05:17:21.6503917Z         },
2026-06-19T05:17:21.6504000Z         "int": {
2026-06-19T05:17:21.6504085Z           "complete": false,
2026-06-19T05:17:21.6504180Z           "evidence": []
2026-06-19T05:17:21.6504266Z         },
2026-06-19T05:17:21.6504338Z         "unit": {
2026-06-19T05:17:21.6504432Z           "complete": true,
2026-06-19T05:17:21.6504517Z           "evidence": [
2026-06-19T05:17:21.6504598Z             {
2026-06-19T05:17:21.6504726Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6504806Z               "line": 1246
2026-06-19T05:17:21.6504891Z             }
2026-06-19T05:17:21.6504968Z           ]
2026-06-19T05:17:21.6505055Z         }
2026-06-19T05:17:21.6505126Z       }
2026-06-19T05:17:21.6505216Z     },
2026-06-19T05:17:21.6505293Z     {
2026-06-19T05:17:21.6505374Z       "id": "REQ-PICKER-5",
2026-06-19T05:17:21.6508393Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
2026-06-19T05:17:21.6508508Z       "requiredStages": [
2026-06-19T05:17:21.6508589Z         "impl",
2026-06-19T05:17:21.6508669Z         "unit"
2026-06-19T05:17:21.6508751Z       ],
2026-06-19T05:17:21.6508842Z       "stages": {
2026-06-19T05:17:21.6509090Z         "doc": {
2026-06-19T05:17:21.6509186Z           "complete": false,
2026-06-19T05:17:21.6509275Z           "evidence": []
2026-06-19T05:17:21.6509352Z         },
2026-06-19T05:17:21.6509443Z         "impl": {
2026-06-19T05:17:21.6509547Z           "complete": true,
2026-06-19T05:17:21.6509652Z           "evidence": [
2026-06-19T05:17:21.6509734Z             {
2026-06-19T05:17:21.6509843Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6509947Z               "line": 1695
2026-06-19T05:17:21.6510118Z             }
2026-06-19T05:17:21.6510198Z           ]
2026-06-19T05:17:21.6510282Z         },
2026-06-19T05:17:21.6510374Z         "int": {
2026-06-19T05:17:21.6510469Z           "complete": false,
2026-06-19T05:17:21.6510554Z           "evidence": []
2026-06-19T05:17:21.6510640Z         },
2026-06-19T05:17:21.6510722Z         "unit": {
2026-06-19T05:17:21.6510817Z           "complete": true,
2026-06-19T05:17:21.6510902Z           "evidence": [
2026-06-19T05:17:21.6510998Z             {
2026-06-19T05:17:21.6511099Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6511180Z               "line": 7383
2026-06-19T05:17:21.6511260Z             }
2026-06-19T05:17:21.6511337Z           ]
2026-06-19T05:17:21.6511423Z         }
2026-06-19T05:17:21.6511508Z       }
2026-06-19T05:17:21.6511589Z     },
2026-06-19T05:17:21.6511676Z     {
2026-06-19T05:17:21.6511784Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
2026-06-19T05:17:21.6513166Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
2026-06-19T05:17:21.6513301Z       "requiredStages": [],
2026-06-19T05:17:21.6513438Z       "stages": {
2026-06-19T05:17:21.6513567Z         "doc": {
2026-06-19T05:17:21.6513691Z           "complete": false,
2026-06-19T05:17:21.6513786Z           "evidence": []
2026-06-19T05:17:21.6513863Z         },
2026-06-19T05:17:21.6513968Z         "impl": {
2026-06-19T05:17:21.6514063Z           "complete": false,
2026-06-19T05:17:21.6514149Z           "evidence": []
2026-06-19T05:17:21.6514231Z         },
2026-06-19T05:17:21.6514311Z         "int": {
2026-06-19T05:17:21.6514416Z           "complete": false,
2026-06-19T05:17:21.6514502Z           "evidence": []
2026-06-19T05:17:21.6514589Z         },
2026-06-19T05:17:21.6514668Z         "unit": {
2026-06-19T05:17:21.6514769Z           "complete": false,
2026-06-19T05:17:21.6514855Z           "evidence": []
2026-06-19T05:17:21.6514936Z         }
2026-06-19T05:17:21.6515016Z       }
2026-06-19T05:17:21.6515101Z     },
2026-06-19T05:17:21.6515187Z     {
2026-06-19T05:17:21.6515286Z       "id": "REQ-PICKER-HISTORY-FRESH",
2026-06-19T05:17:21.6516415Z       "title": "The `spt endpoint run` picker shows project history for FRESH endpoints (operator-raised v0.12.0 real-harness finding). Symptom: a fresh endpoint shows no project history in the picker. ROOT TBD — investigate the project-history loader (v0.10.0 PICKER-2, picker/data.rs) before fixing: distinguish a real loader bug from 'fresh = no history yet' semantics. (v0.12.1)",
2026-06-19T05:17:21.6516516Z       "requiredStages": [
2026-06-19T05:17:21.6516601Z         "impl",
2026-06-19T05:17:21.6516691Z         "unit"
2026-06-19T05:17:21.6516773Z       ],
2026-06-19T05:17:21.6516873Z       "stages": {
2026-06-19T05:17:21.6516963Z         "doc": {
2026-06-19T05:17:21.6517049Z           "complete": false,
2026-06-19T05:17:21.6517145Z           "evidence": []
2026-06-19T05:17:21.6517216Z         },
2026-06-19T05:17:21.6517302Z         "impl": {
2026-06-19T05:17:21.6517393Z           "complete": true,
2026-06-19T05:17:21.6517484Z           "evidence": [
2026-06-19T05:17:21.6517564Z             {
2026-06-19T05:17:21.6517823Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6517907Z               "line": 233
2026-06-19T05:17:21.6517992Z             }
2026-06-19T05:17:21.6518079Z           ]
2026-06-19T05:17:21.6518158Z         },
2026-06-19T05:17:21.6518243Z         "int": {
2026-06-19T05:17:21.6518333Z           "complete": false,
2026-06-19T05:17:21.6518424Z           "evidence": []
2026-06-19T05:17:21.6518506Z         },
2026-06-19T05:17:21.6518586Z         "unit": {
2026-06-19T05:17:21.6518749Z           "complete": true,
2026-06-19T05:17:21.6518835Z           "evidence": [
2026-06-19T05:17:21.6518915Z             {
2026-06-19T05:17:21.6519106Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6519187Z               "line": 355
2026-06-19T05:17:21.6519267Z             }
2026-06-19T05:17:21.6519350Z           ]
2026-06-19T05:17:21.6519454Z         }
2026-06-19T05:17:21.6519535Z       }
2026-06-19T05:17:21.6519616Z     },
2026-06-19T05:17:21.6519712Z     {
2026-06-19T05:17:21.6519816Z       "id": "REQ-PICKER-ONLINE-ACTION",
2026-06-19T05:17:21.6521659Z       "title": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint — Attach, NOT 'Start now' (operator-raised v0.12.0 real-harness finding). Symptom: the picker offers 'Start now' for endpoints that are already online. ROOT TBD — investigate the status→action mapping (v0.10.0 PICKER-1 four-state status, picker/model.rs): is it reading live/online state correctly, or rendering stale/wedged broker state (i.e. partly a symptom of the broker wedge / status=online latch)? Fix so online → Attach. (v0.12.1)",
2026-06-19T05:17:21.6521777Z       "requiredStages": [
2026-06-19T05:17:21.6521854Z         "impl",
2026-06-19T05:17:21.6521940Z         "unit"
2026-06-19T05:17:21.6522016Z       ],
2026-06-19T05:17:21.6522101Z       "stages": {
2026-06-19T05:17:21.6522178Z         "doc": {
2026-06-19T05:17:21.6522279Z           "complete": false,
2026-06-19T05:17:21.6522374Z           "evidence": []
2026-06-19T05:17:21.6522459Z         },
2026-06-19T05:17:21.6522546Z         "impl": {
2026-06-19T05:17:21.6522627Z           "complete": true,
2026-06-19T05:17:21.6522722Z           "evidence": [
2026-06-19T05:17:21.6522793Z             {
2026-06-19T05:17:21.6522914Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6523007Z               "line": 619
2026-06-19T05:17:21.6523093Z             }
2026-06-19T05:17:21.6523176Z           ]
2026-06-19T05:17:21.6523252Z         },
2026-06-19T05:17:21.6523340Z         "int": {
2026-06-19T05:17:21.6523421Z           "complete": false,
2026-06-19T05:17:21.6523512Z           "evidence": []
2026-06-19T05:17:21.6523594Z         },
2026-06-19T05:17:21.6523674Z         "unit": {
2026-06-19T05:17:21.6523769Z           "complete": true,
2026-06-19T05:17:21.6523846Z           "evidence": [
2026-06-19T05:17:21.6523932Z             {
2026-06-19T05:17:21.6524041Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6524137Z               "line": 993
2026-06-19T05:17:21.6524223Z             },
2026-06-19T05:17:21.6524304Z             {
2026-06-19T05:17:21.6524423Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6524500Z               "line": 1007
2026-06-19T05:17:21.6524580Z             }
2026-06-19T05:17:21.6524656Z           ]
2026-06-19T05:17:21.6524742Z         }
2026-06-19T05:17:21.6524834Z       }
2026-06-19T05:17:21.6524919Z     },
2026-06-19T05:17:21.6525000Z     {
2026-06-19T05:17:21.6525091Z       "id": "REQ-PRES-1",
2026-06-19T05:17:21.6526423Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-19T05:17:21.6526650Z       "requiredStages": [
2026-06-19T05:17:21.6526738Z         "impl",
2026-06-19T05:17:21.6526828Z         "unit",
2026-06-19T05:17:21.6526908Z         "int"
2026-06-19T05:17:21.6526999Z       ],
2026-06-19T05:17:21.6527081Z       "stages": {
2026-06-19T05:17:21.6527162Z         "doc": {
2026-06-19T05:17:21.6527256Z           "complete": true,
2026-06-19T05:17:21.6527338Z           "evidence": [
2026-06-19T05:17:21.6527424Z             {
2026-06-19T05:17:21.6527528Z               "path": "docs/DEFERRED.md",
2026-06-19T05:17:21.6527706Z               "line": 11
2026-06-19T05:17:21.6527786Z             }
2026-06-19T05:17:21.6527876Z           ]
2026-06-19T05:17:21.6527958Z         },
2026-06-19T05:17:21.6528039Z         "impl": {
2026-06-19T05:17:21.6528143Z           "complete": true,
2026-06-19T05:17:21.6528239Z           "evidence": [
2026-06-19T05:17:21.6528322Z             {
2026-06-19T05:17:21.6528448Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6528538Z               "line": 515
2026-06-19T05:17:21.6528629Z             },
2026-06-19T05:17:21.6528709Z             {
2026-06-19T05:17:21.6528831Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6528908Z               "line": 567
2026-06-19T05:17:21.6529089Z             },
2026-06-19T05:17:21.6529169Z             {
2026-06-19T05:17:21.6529295Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6529404Z               "line": 188
2026-06-19T05:17:21.6529489Z             },
2026-06-19T05:17:21.6529571Z             {
2026-06-19T05:17:21.6529681Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6529771Z               "line": 214
2026-06-19T05:17:21.6529852Z             },
2026-06-19T05:17:21.6529934Z             {
2026-06-19T05:17:21.6530047Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6530133Z               "line": 28
2026-06-19T05:17:21.6530220Z             },
2026-06-19T05:17:21.6530291Z             {
2026-06-19T05:17:21.6530419Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6530506Z               "line": 105
2026-06-19T05:17:21.6530592Z             },
2026-06-19T05:17:21.6530681Z             {
2026-06-19T05:17:21.6530796Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6530874Z               "line": 161
2026-06-19T05:17:21.6530954Z             },
2026-06-19T05:17:21.6531043Z             {
2026-06-19T05:17:21.6531162Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6531233Z               "line": 180
2026-06-19T05:17:21.6531318Z             },
2026-06-19T05:17:21.6531398Z             {
2026-06-19T05:17:21.6531536Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6531624Z               "line": 421
2026-06-19T05:17:21.6531712Z             },
2026-06-19T05:17:21.6531794Z             {
2026-06-19T05:17:21.6531918Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6532018Z               "line": 289
2026-06-19T05:17:21.6532094Z             },
2026-06-19T05:17:21.6532181Z             {
2026-06-19T05:17:21.6532295Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6532394Z               "line": 336
2026-06-19T05:17:21.6532472Z             },
2026-06-19T05:17:21.6532553Z             {
2026-06-19T05:17:21.6532671Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6532752Z               "line": 362
2026-06-19T05:17:21.6532844Z             },
2026-06-19T05:17:21.6532924Z             {
2026-06-19T05:17:21.6533043Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6533130Z               "line": 100
2026-06-19T05:17:21.6533215Z             }
2026-06-19T05:17:21.6533296Z           ]
2026-06-19T05:17:21.6533377Z         },
2026-06-19T05:17:21.6533455Z         "int": {
2026-06-19T05:17:21.6536759Z           "complete": true,
2026-06-19T05:17:21.6536877Z           "evidence": [
2026-06-19T05:17:21.6537111Z             {
2026-06-19T05:17:21.6537250Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6537345Z               "line": 561
2026-06-19T05:17:21.6537430Z             },
2026-06-19T05:17:21.6537516Z             {
2026-06-19T05:17:21.6537641Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6537736Z               "line": 746
2026-06-19T05:17:21.6537835Z             },
2026-06-19T05:17:21.6537923Z             {
2026-06-19T05:17:21.6538179Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6538262Z               "line": 1164
2026-06-19T05:17:21.6538346Z             }
2026-06-19T05:17:21.6538427Z           ]
2026-06-19T05:17:21.6538509Z         },
2026-06-19T05:17:21.6538600Z         "unit": {
2026-06-19T05:17:21.6538698Z           "complete": true,
2026-06-19T05:17:21.6538794Z           "evidence": [
2026-06-19T05:17:21.6538877Z             {
2026-06-19T05:17:21.6539079Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.6539160Z               "line": 674
2026-06-19T05:17:21.6539260Z             },
2026-06-19T05:17:21.6539339Z             {
2026-06-19T05:17:21.6539463Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6539549Z               "line": 238
2026-06-19T05:17:21.6539631Z             },
2026-06-19T05:17:21.6539716Z             {
2026-06-19T05:17:21.6539836Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6539917Z               "line": 269
2026-06-19T05:17:21.6539997Z             },
2026-06-19T05:17:21.6540082Z             {
2026-06-19T05:17:21.6540198Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6540274Z               "line": 305
2026-06-19T05:17:21.6540355Z             },
2026-06-19T05:17:21.6540436Z             {
2026-06-19T05:17:21.6540555Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:17:21.6540636Z               "line": 336
2026-06-19T05:17:21.6540717Z             },
2026-06-19T05:17:21.6540800Z             {
2026-06-19T05:17:21.6540927Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6541017Z               "line": 1217
2026-06-19T05:17:21.6541105Z             },
2026-06-19T05:17:21.6541185Z             {
2026-06-19T05:17:21.6541304Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6541400Z               "line": 1163
2026-06-19T05:17:21.6541486Z             }
2026-06-19T05:17:21.6541575Z           ]
2026-06-19T05:17:21.6541660Z         }
2026-06-19T05:17:21.6541736Z       }
2026-06-19T05:17:21.6541817Z     },
2026-06-19T05:17:21.6541897Z     {
2026-06-19T05:17:21.6541982Z       "id": "REQ-RC-1",
2026-06-19T05:17:21.6544057Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-19T05:17:21.6544166Z       "requiredStages": [
2026-06-19T05:17:21.6544248Z         "impl",
2026-06-19T05:17:21.6544329Z         "unit",
2026-06-19T05:17:21.6544414Z         "int"
2026-06-19T05:17:21.6544499Z       ],
2026-06-19T05:17:21.6544589Z       "stages": {
2026-06-19T05:17:21.6544666Z         "doc": {
2026-06-19T05:17:21.6544762Z           "complete": false,
2026-06-19T05:17:21.6544842Z           "evidence": []
2026-06-19T05:17:21.6544923Z         },
2026-06-19T05:17:21.6545005Z         "impl": {
2026-06-19T05:17:21.6545100Z           "complete": true,
2026-06-19T05:17:21.6545301Z           "evidence": [
2026-06-19T05:17:21.6545376Z             {
2026-06-19T05:17:21.6545495Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.6545572Z               "line": 896
2026-06-19T05:17:21.6545658Z             },
2026-06-19T05:17:21.6545739Z             {
2026-06-19T05:17:21.6545862Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.6545959Z               "line": 1243
2026-06-19T05:17:21.6546043Z             },
2026-06-19T05:17:21.6546226Z             {
2026-06-19T05:17:21.6546344Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6546439Z               "line": 967
2026-06-19T05:17:21.6546521Z             },
2026-06-19T05:17:21.6546608Z             {
2026-06-19T05:17:21.6546729Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6546814Z               "line": 1001
2026-06-19T05:17:21.6546901Z             },
2026-06-19T05:17:21.6546986Z             {
2026-06-19T05:17:21.6547099Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6547180Z               "line": 22
2026-06-19T05:17:21.6547262Z             },
2026-06-19T05:17:21.6547342Z             {
2026-06-19T05:17:21.6547446Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6547528Z               "line": 181
2026-06-19T05:17:21.6547614Z             }
2026-06-19T05:17:21.6547699Z           ]
2026-06-19T05:17:21.6547771Z         },
2026-06-19T05:17:21.6547853Z         "int": {
2026-06-19T05:17:21.6547948Z           "complete": true,
2026-06-19T05:17:21.6548023Z           "evidence": [
2026-06-19T05:17:21.6548110Z             {
2026-06-19T05:17:21.6548229Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6548310Z               "line": 257
2026-06-19T05:17:21.6548396Z             },
2026-06-19T05:17:21.6548478Z             {
2026-06-19T05:17:21.6548601Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6548687Z               "line": 284
2026-06-19T05:17:21.6548769Z             },
2026-06-19T05:17:21.6548850Z             {
2026-06-19T05:17:21.6549049Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6549137Z               "line": 412
2026-06-19T05:17:21.6549220Z             }
2026-06-19T05:17:21.6549297Z           ]
2026-06-19T05:17:21.6549384Z         },
2026-06-19T05:17:21.6549489Z         "unit": {
2026-06-19T05:17:21.6549573Z           "complete": true,
2026-06-19T05:17:21.6549667Z           "evidence": [
2026-06-19T05:17:21.6549759Z             {
2026-06-19T05:17:21.6549871Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6549971Z               "line": 1327
2026-06-19T05:17:21.6550052Z             },
2026-06-19T05:17:21.6550134Z             {
2026-06-19T05:17:21.6550233Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6550318Z               "line": 594
2026-06-19T05:17:21.6550401Z             },
2026-06-19T05:17:21.6550486Z             {
2026-06-19T05:17:21.6550590Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6550667Z               "line": 623
2026-06-19T05:17:21.6550753Z             },
2026-06-19T05:17:21.6550830Z             {
2026-06-19T05:17:21.6550929Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6551015Z               "line": 636
2026-06-19T05:17:21.6551101Z             }
2026-06-19T05:17:21.6551182Z           ]
2026-06-19T05:17:21.6551263Z         }
2026-06-19T05:17:21.6551345Z       }
2026-06-19T05:17:21.6551430Z     },
2026-06-19T05:17:21.6551511Z     {
2026-06-19T05:17:21.6551606Z       "id": "REQ-RCVIEW-1",
2026-06-19T05:17:21.6556050Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-19T05:17:21.6556374Z       "requiredStages": [
2026-06-19T05:17:21.6556452Z         "doc",
2026-06-19T05:17:21.6556538Z         "impl",
2026-06-19T05:17:21.6556623Z         "unit",
2026-06-19T05:17:21.6556708Z         "int"
2026-06-19T05:17:21.6556796Z       ],
2026-06-19T05:17:21.6556886Z       "stages": {
2026-06-19T05:17:21.6556971Z         "doc": {
2026-06-19T05:17:21.6557067Z           "complete": true,
2026-06-19T05:17:21.6557163Z           "evidence": [
2026-06-19T05:17:21.6557252Z             {
2026-06-19T05:17:21.6557347Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6557437Z               "line": 342
2026-06-19T05:17:21.6557513Z             }
2026-06-19T05:17:21.6557592Z           ]
2026-06-19T05:17:21.6557673Z         },
2026-06-19T05:17:21.6557764Z         "impl": {
2026-06-19T05:17:21.6557846Z           "complete": true,
2026-06-19T05:17:21.6557940Z           "evidence": [
2026-06-19T05:17:21.6558031Z             {
2026-06-19T05:17:21.6558151Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:17:21.6558236Z               "line": 345
2026-06-19T05:17:21.6558322Z             },
2026-06-19T05:17:21.6558413Z             {
2026-06-19T05:17:21.6558523Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.6558617Z               "line": 431
2026-06-19T05:17:21.6558690Z             },
2026-06-19T05:17:21.6558776Z             {
2026-06-19T05:17:21.6558903Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.6559076Z               "line": 442
2026-06-19T05:17:21.6559166Z             },
2026-06-19T05:17:21.6559247Z             {
2026-06-19T05:17:21.6559372Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6559475Z               "line": 41
2026-06-19T05:17:21.6559552Z             },
2026-06-19T05:17:21.6559634Z             {
2026-06-19T05:17:21.6559748Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6559848Z               "line": 62
2026-06-19T05:17:21.6559924Z             },
2026-06-19T05:17:21.6560011Z             {
2026-06-19T05:17:21.6560133Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.6560219Z               "line": 297
2026-06-19T05:17:21.6560295Z             },
2026-06-19T05:17:21.6560367Z             {
2026-06-19T05:17:21.6560474Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:17:21.6560559Z               "line": 181
2026-06-19T05:17:21.6560646Z             }
2026-06-19T05:17:21.6560727Z           ]
2026-06-19T05:17:21.6560798Z         },
2026-06-19T05:17:21.6560883Z         "int": {
2026-06-19T05:17:21.6560966Z           "complete": true,
2026-06-19T05:17:21.6561046Z           "evidence": [
2026-06-19T05:17:21.6561131Z             {
2026-06-19T05:17:21.6561251Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6561346Z               "line": 910
2026-06-19T05:17:21.6561537Z             },
2026-06-19T05:17:21.6561619Z             {
2026-06-19T05:17:21.6561733Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6561833Z               "line": 950
2026-06-19T05:17:21.6561915Z             },
2026-06-19T05:17:21.6562004Z             {
2026-06-19T05:17:21.6562119Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6562206Z               "line": 997
2026-06-19T05:17:21.6562277Z             },
2026-06-19T05:17:21.6562357Z             {
2026-06-19T05:17:21.6562573Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6562658Z               "line": 1109
2026-06-19T05:17:21.6562743Z             }
2026-06-19T05:17:21.6562823Z           ]
2026-06-19T05:17:21.6562910Z         },
2026-06-19T05:17:21.6562993Z         "unit": {
2026-06-19T05:17:21.6563088Z           "complete": true,
2026-06-19T05:17:21.6563174Z           "evidence": [
2026-06-19T05:17:21.6563256Z             {
2026-06-19T05:17:21.6563365Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6563455Z               "line": 175
2026-06-19T05:17:21.6563537Z             },
2026-06-19T05:17:21.6563613Z             {
2026-06-19T05:17:21.6563722Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:17:21.6563813Z               "line": 195
2026-06-19T05:17:21.6563899Z             }
2026-06-19T05:17:21.6563970Z           ]
2026-06-19T05:17:21.6564061Z         }
2026-06-19T05:17:21.6564128Z       }
2026-06-19T05:17:21.6564218Z     },
2026-06-19T05:17:21.6564294Z     {
2026-06-19T05:17:21.6564389Z       "id": "REQ-REACH-1",
2026-06-19T05:17:21.6564533Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-19T05:17:21.6564624Z       "requiredStages": [
2026-06-19T05:17:21.6564709Z         "impl",
2026-06-19T05:17:21.6564792Z         "unit",
2026-06-19T05:17:21.6564876Z         "int"
2026-06-19T05:17:21.6564957Z       ],
2026-06-19T05:17:21.6565038Z       "stages": {
2026-06-19T05:17:21.6565121Z         "doc": {
2026-06-19T05:17:21.6565224Z           "complete": false,
2026-06-19T05:17:21.6565315Z           "evidence": []
2026-06-19T05:17:21.6565397Z         },
2026-06-19T05:17:21.6565483Z         "impl": {
2026-06-19T05:17:21.6565567Z           "complete": true,
2026-06-19T05:17:21.6565652Z           "evidence": [
2026-06-19T05:17:21.6565733Z             {
2026-06-19T05:17:21.6565849Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.6565934Z               "line": 431
2026-06-19T05:17:21.6566024Z             },
2026-06-19T05:17:21.6566111Z             {
2026-06-19T05:17:21.6566220Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.6566315Z               "line": 76
2026-06-19T05:17:21.6566402Z             },
2026-06-19T05:17:21.6566488Z             {
2026-06-19T05:17:21.6566606Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.6566687Z               "line": 222
2026-06-19T05:17:21.6566778Z             },
2026-06-19T05:17:21.6566869Z             {
2026-06-19T05:17:21.6566988Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.6567079Z               "line": 422
2026-06-19T05:17:21.6567159Z             },
2026-06-19T05:17:21.6567240Z             {
2026-06-19T05:17:21.6567356Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.6567446Z               "line": 529
2026-06-19T05:17:21.6567526Z             },
2026-06-19T05:17:21.6567608Z             {
2026-06-19T05:17:21.6567714Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:17:21.6567808Z               "line": 39
2026-06-19T05:17:21.6567897Z             },
2026-06-19T05:17:21.6567959Z             {
2026-06-19T05:17:21.6568073Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.6568157Z               "line": 289
2026-06-19T05:17:21.6568243Z             },
2026-06-19T05:17:21.6568329Z             {
2026-06-19T05:17:21.6568430Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:17:21.6568610Z               "line": 88
2026-06-19T05:17:21.6568688Z             },
2026-06-19T05:17:21.6568777Z             {
2026-06-19T05:17:21.6568882Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:17:21.6569054Z               "line": 98
2026-06-19T05:17:21.6569144Z             },
2026-06-19T05:17:21.6569445Z             {
2026-06-19T05:17:21.6569651Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6569746Z               "line": 229
2026-06-19T05:17:21.6570017Z             }
2026-06-19T05:17:21.6570098Z           ]
2026-06-19T05:17:21.6570179Z         },
2026-06-19T05:17:21.6570257Z         "int": {
2026-06-19T05:17:21.6570341Z           "complete": true,
2026-06-19T05:17:21.6570432Z           "evidence": [
2026-06-19T05:17:21.6570519Z             {
2026-06-19T05:17:21.6570656Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6570736Z               "line": 415
2026-06-19T05:17:21.6570821Z             },
2026-06-19T05:17:21.6570917Z             {
2026-06-19T05:17:21.6571043Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6571124Z               "line": 518
2026-06-19T05:17:21.6571210Z             },
2026-06-19T05:17:21.6571292Z             {
2026-06-19T05:17:21.6571415Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6571506Z               "line": 997
2026-06-19T05:17:21.6571583Z             },
2026-06-19T05:17:21.6571664Z             {
2026-06-19T05:17:21.6571787Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6571884Z               "line": 1382
2026-06-19T05:17:21.6571960Z             }
2026-06-19T05:17:21.6572044Z           ]
2026-06-19T05:17:21.6572131Z         },
2026-06-19T05:17:21.6572222Z         "unit": {
2026-06-19T05:17:21.6572303Z           "complete": true,
2026-06-19T05:17:21.6572402Z           "evidence": [
2026-06-19T05:17:21.6572489Z             {
2026-06-19T05:17:21.6572593Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.6572688Z               "line": 639
2026-06-19T05:17:21.6572766Z             },
2026-06-19T05:17:21.6572852Z             {
2026-06-19T05:17:21.6572960Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:17:21.6573046Z               "line": 660
2026-06-19T05:17:21.6573129Z             },
2026-06-19T05:17:21.6573213Z             {
2026-06-19T05:17:21.6573336Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:17:21.6573426Z               "line": 765
2026-06-19T05:17:21.6573512Z             },
2026-06-19T05:17:21.6573591Z             {
2026-06-19T05:17:21.6573700Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-19T05:17:21.6573782Z               "line": 93
2026-06-19T05:17:21.6573868Z             },
2026-06-19T05:17:21.6573953Z             {
2026-06-19T05:17:21.6574068Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-19T05:17:21.6574150Z               "line": 224
2026-06-19T05:17:21.6574230Z             },
2026-06-19T05:17:21.6574315Z             {
2026-06-19T05:17:21.6574422Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:17:21.6574507Z               "line": 96
2026-06-19T05:17:21.6574597Z             },
2026-06-19T05:17:21.6574669Z             {
2026-06-19T05:17:21.6574779Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:17:21.6574864Z               "line": 146
2026-06-19T05:17:21.6574950Z             },
2026-06-19T05:17:21.6575032Z             {
2026-06-19T05:17:21.6575145Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.6575241Z               "line": 672
2026-06-19T05:17:21.6575318Z             },
2026-06-19T05:17:21.6575404Z             {
2026-06-19T05:17:21.6575513Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:17:21.6575613Z               "line": 118
2026-06-19T05:17:21.6575696Z             },
2026-06-19T05:17:21.6575779Z             {
2026-06-19T05:17:21.6575894Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:17:21.6576104Z               "line": 148
2026-06-19T05:17:21.6576189Z             },
2026-06-19T05:17:21.6576270Z             {
2026-06-19T05:17:21.6576395Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6576485Z               "line": 924
2026-06-19T05:17:21.6576575Z             }
2026-06-19T05:17:21.6576657Z           ]
2026-06-19T05:17:21.6576738Z         }
2026-06-19T05:17:21.6576828Z       }
2026-06-19T05:17:21.6576914Z     },
2026-06-19T05:17:21.6577000Z     {
2026-06-19T05:17:21.6577161Z       "id": "REQ-REACH-2",
2026-06-19T05:17:21.6577333Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-19T05:17:21.6577466Z       "requiredStages": [],
2026-06-19T05:17:21.6577543Z       "stages": {
2026-06-19T05:17:21.6577630Z         "doc": {
2026-06-19T05:17:21.6577758Z           "complete": false,
2026-06-19T05:17:21.6577848Z           "evidence": []
2026-06-19T05:17:21.6577935Z         },
2026-06-19T05:17:21.6578039Z         "impl": {
2026-06-19T05:17:21.6578139Z           "complete": false,
2026-06-19T05:17:21.6578236Z           "evidence": []
2026-06-19T05:17:21.6578326Z         },
2026-06-19T05:17:21.6578414Z         "int": {
2026-06-19T05:17:21.6578519Z           "complete": false,
2026-06-19T05:17:21.6578615Z           "evidence": []
2026-06-19T05:17:21.6578699Z         },
2026-06-19T05:17:21.6578793Z         "unit": {
2026-06-19T05:17:21.6578885Z           "complete": false,
2026-06-19T05:17:21.6579056Z           "evidence": []
2026-06-19T05:17:21.6579146Z         }
2026-06-19T05:17:21.6579233Z       }
2026-06-19T05:17:21.6579323Z     },
2026-06-19T05:17:21.6579413Z     {
2026-06-19T05:17:21.6579538Z       "id": "REQ-READY-AGENT-RESUME",
2026-06-19T05:17:21.6583083Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint run --resume <session>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
2026-06-19T05:17:21.6583201Z       "requiredStages": [
2026-06-19T05:17:21.6583282Z         "doc",
2026-06-19T05:17:21.6583383Z         "impl",
2026-06-19T05:17:21.6583468Z         "unit",
2026-06-19T05:17:21.6583558Z         "int"
2026-06-19T05:17:21.6583636Z       ],
2026-06-19T05:17:21.6583717Z       "stages": {
2026-06-19T05:17:21.6583801Z         "doc": {
2026-06-19T05:17:21.6583892Z           "complete": true,
2026-06-19T05:17:21.6583986Z           "evidence": [
2026-06-19T05:17:21.6584072Z             {
2026-06-19T05:17:21.6584175Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6584270Z               "line": 369
2026-06-19T05:17:21.6584357Z             }
2026-06-19T05:17:21.6584443Z           ]
2026-06-19T05:17:21.6584523Z         },
2026-06-19T05:17:21.6584609Z         "impl": {
2026-06-19T05:17:21.6584695Z           "complete": true,
2026-06-19T05:17:21.6584795Z           "evidence": [
2026-06-19T05:17:21.6584880Z             {
2026-06-19T05:17:21.6585001Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6585087Z               "line": 110
2026-06-19T05:17:21.6585162Z             }
2026-06-19T05:17:21.6585362Z           ]
2026-06-19T05:17:21.6585443Z         },
2026-06-19T05:17:21.6585534Z         "int": {
2026-06-19T05:17:21.6585635Z           "complete": true,
2026-06-19T05:17:21.6585720Z           "evidence": [
2026-06-19T05:17:21.6585806Z             {
2026-06-19T05:17:21.6585950Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
2026-06-19T05:17:21.6586044Z               "line": 26
2026-06-19T05:17:21.6586125Z             }
2026-06-19T05:17:21.6586217Z           ]
2026-06-19T05:17:21.6586411Z         },
2026-06-19T05:17:21.6586493Z         "unit": {
2026-06-19T05:17:21.6586594Z           "complete": true,
2026-06-19T05:17:21.6586687Z           "evidence": [
2026-06-19T05:17:21.6586777Z             {
2026-06-19T05:17:21.6586892Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:17:21.6586979Z               "line": 318
2026-06-19T05:17:21.6587078Z             }
2026-06-19T05:17:21.6587183Z           ]
2026-06-19T05:17:21.6587288Z         }
2026-06-19T05:17:21.6587378Z       }
2026-06-19T05:17:21.6587459Z     },
2026-06-19T05:17:21.6587541Z     {
2026-06-19T05:17:21.6587636Z       "id": "REQ-REL-1",
2026-06-19T05:17:21.6588017Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-19T05:17:21.6588113Z       "requiredStages": [
2026-06-19T05:17:21.6588190Z         "doc",
2026-06-19T05:17:21.6588275Z         "impl"
2026-06-19T05:17:21.6588361Z       ],
2026-06-19T05:17:21.6588457Z       "stages": {
2026-06-19T05:17:21.6588552Z         "doc": {
2026-06-19T05:17:21.6588656Z           "complete": true,
2026-06-19T05:17:21.6588742Z           "evidence": [
2026-06-19T05:17:21.6588834Z             {
2026-06-19T05:17:21.6589118Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-19T05:17:21.6589207Z               "line": 3
2026-06-19T05:17:21.6589287Z             }
2026-06-19T05:17:21.6589368Z           ]
2026-06-19T05:17:21.6589464Z         },
2026-06-19T05:17:21.6589564Z         "impl": {
2026-06-19T05:17:21.6589658Z           "complete": true,
2026-06-19T05:17:21.6589740Z           "evidence": [
2026-06-19T05:17:21.6589822Z             {
2026-06-19T05:17:21.6589945Z               "path": ".github/workflows/docs-publish.yml",
2026-06-19T05:17:21.6590040Z               "line": 11
2026-06-19T05:17:21.6590117Z             },
2026-06-19T05:17:21.6590203Z             {
2026-06-19T05:17:21.6590307Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6590422Z               "line": 265
2026-06-19T05:17:21.6590532Z             }
2026-06-19T05:17:21.6590612Z           ]
2026-06-19T05:17:21.6590694Z         },
2026-06-19T05:17:21.6590780Z         "int": {
2026-06-19T05:17:21.6590875Z           "complete": false,
2026-06-19T05:17:21.6590955Z           "evidence": []
2026-06-19T05:17:21.6591038Z         },
2026-06-19T05:17:21.6591132Z         "unit": {
2026-06-19T05:17:21.6591214Z           "complete": false,
2026-06-19T05:17:21.6591319Z           "evidence": []
2026-06-19T05:17:21.6591405Z         }
2026-06-19T05:17:21.6591485Z       }
2026-06-19T05:17:21.6591576Z     },
2026-06-19T05:17:21.6591658Z     {
2026-06-19T05:17:21.6591758Z       "id": "REQ-REL-2",
2026-06-19T05:17:21.6592225Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-19T05:17:21.6592321Z       "requiredStages": [
2026-06-19T05:17:21.6592407Z         "impl",
2026-06-19T05:17:21.6592493Z         "int"
2026-06-19T05:17:21.6592578Z       ],
2026-06-19T05:17:21.6592665Z       "stages": {
2026-06-19T05:17:21.6592746Z         "doc": {
2026-06-19T05:17:21.6592845Z           "complete": true,
2026-06-19T05:17:21.6592937Z           "evidence": [
2026-06-19T05:17:21.6593032Z             {
2026-06-19T05:17:21.6593132Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-19T05:17:21.6593218Z               "line": 6
2026-06-19T05:17:21.6593428Z             }
2026-06-19T05:17:21.6593508Z           ]
2026-06-19T05:17:21.6593595Z         },
2026-06-19T05:17:21.6593681Z         "impl": {
2026-06-19T05:17:21.6593776Z           "complete": true,
2026-06-19T05:17:21.6593861Z           "evidence": [
2026-06-19T05:17:21.6593943Z             {
2026-06-19T05:17:21.6594061Z               "path": ".github/workflows/release.yml",
2026-06-19T05:17:21.6594157Z               "line": 16
2026-06-19T05:17:21.6594244Z             },
2026-06-19T05:17:21.6594413Z             {
2026-06-19T05:17:21.6594518Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6594604Z               "line": 352
2026-06-19T05:17:21.6594693Z             },
2026-06-19T05:17:21.6594773Z             {
2026-06-19T05:17:21.6594883Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6594970Z               "line": 426
2026-06-19T05:17:21.6595054Z             },
2026-06-19T05:17:21.6595140Z             {
2026-06-19T05:17:21.6595256Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6595355Z               "line": 588
2026-06-19T05:17:21.6595441Z             },
2026-06-19T05:17:21.6595523Z             {
2026-06-19T05:17:21.6595637Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6595722Z               "line": 720
2026-06-19T05:17:21.6595799Z             }
2026-06-19T05:17:21.6595881Z           ]
2026-06-19T05:17:21.6595965Z         },
2026-06-19T05:17:21.6596046Z         "int": {
2026-06-19T05:17:21.6596152Z           "complete": true,
2026-06-19T05:17:21.6596238Z           "evidence": [
2026-06-19T05:17:21.6596323Z             {
2026-06-19T05:17:21.6596458Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-19T05:17:21.6596548Z               "line": 13
2026-06-19T05:17:21.6596633Z             }
2026-06-19T05:17:21.6596719Z           ]
2026-06-19T05:17:21.6596806Z         },
2026-06-19T05:17:21.6596895Z         "unit": {
2026-06-19T05:17:21.6596986Z           "complete": false,
2026-06-19T05:17:21.6597083Z           "evidence": []
2026-06-19T05:17:21.6597164Z         }
2026-06-19T05:17:21.6597257Z       }
2026-06-19T05:17:21.6597338Z     },
2026-06-19T05:17:21.6597419Z     {
2026-06-19T05:17:21.6597515Z       "id": "REQ-REL-3",
2026-06-19T05:17:21.6597933Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-19T05:17:21.6598029Z       "requiredStages": [
2026-06-19T05:17:21.6598116Z         "impl",
2026-06-19T05:17:21.6598201Z         "unit"
2026-06-19T05:17:21.6598286Z       ],
2026-06-19T05:17:21.6598377Z       "stages": {
2026-06-19T05:17:21.6598458Z         "doc": {
2026-06-19T05:17:21.6598540Z           "complete": false,
2026-06-19T05:17:21.6598634Z           "evidence": []
2026-06-19T05:17:21.6598717Z         },
2026-06-19T05:17:21.6598806Z         "impl": {
2026-06-19T05:17:21.6598887Z           "complete": true,
2026-06-19T05:17:21.6599060Z           "evidence": [
2026-06-19T05:17:21.6599149Z             {
2026-06-19T05:17:21.6599264Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.6599356Z               "line": 237
2026-06-19T05:17:21.6599441Z             },
2026-06-19T05:17:21.6599521Z             {
2026-06-19T05:17:21.6599635Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.6599735Z               "line": 289
2026-06-19T05:17:21.6599814Z             },
2026-06-19T05:17:21.6599899Z             {
2026-06-19T05:17:21.6600010Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6600101Z               "line": 329
2026-06-19T05:17:21.6600186Z             },
2026-06-19T05:17:21.6600262Z             {
2026-06-19T05:17:21.6600372Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6600467Z               "line": 353
2026-06-19T05:17:21.6600547Z             },
2026-06-19T05:17:21.6600625Z             {
2026-06-19T05:17:21.6600720Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.6600916Z               "line": 394
2026-06-19T05:17:21.6601002Z             }
2026-06-19T05:17:21.6601092Z           ]
2026-06-19T05:17:21.6601173Z         },
2026-06-19T05:17:21.6601259Z         "int": {
2026-06-19T05:17:21.6601349Z           "complete": false,
2026-06-19T05:17:21.6601435Z           "evidence": []
2026-06-19T05:17:21.6601515Z         },
2026-06-19T05:17:21.6601594Z         "unit": {
2026-06-19T05:17:21.6601697Z           "complete": true,
2026-06-19T05:17:21.6601894Z           "evidence": [
2026-06-19T05:17:21.6601970Z             {
2026-06-19T05:17:21.6602088Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.6602175Z               "line": 1045
2026-06-19T05:17:21.6602257Z             },
2026-06-19T05:17:21.6602341Z             {
2026-06-19T05:17:21.6602459Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.6602545Z               "line": 1104
2026-06-19T05:17:21.6602630Z             }
2026-06-19T05:17:21.6602719Z           ]
2026-06-19T05:17:21.6602804Z         }
2026-06-19T05:17:21.6602886Z       }
2026-06-19T05:17:21.6602967Z     },
2026-06-19T05:17:21.6603058Z     {
2026-06-19T05:17:21.6603162Z       "id": "REQ-RUN-PICKER",
2026-06-19T05:17:21.6607785Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-19T05:17:21.6607907Z       "requiredStages": [
2026-06-19T05:17:21.6607998Z         "doc",
2026-06-19T05:17:21.6608090Z         "impl",
2026-06-19T05:17:21.6608174Z         "unit"
2026-06-19T05:17:21.6608264Z       ],
2026-06-19T05:17:21.6608361Z       "stages": {
2026-06-19T05:17:21.6608447Z         "doc": {
2026-06-19T05:17:21.6608541Z           "complete": true,
2026-06-19T05:17:21.6608628Z           "evidence": [
2026-06-19T05:17:21.6608718Z             {
2026-06-19T05:17:21.6608822Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6608909Z               "line": 346
2026-06-19T05:17:21.6609080Z             }
2026-06-19T05:17:21.6609161Z           ]
2026-06-19T05:17:21.6609253Z         },
2026-06-19T05:17:21.6609339Z         "impl": {
2026-06-19T05:17:21.6609443Z           "complete": true,
2026-06-19T05:17:21.6609528Z           "evidence": [
2026-06-19T05:17:21.6609611Z             {
2026-06-19T05:17:21.6609719Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6609810Z               "line": 951
2026-06-19T05:17:21.6609892Z             },
2026-06-19T05:17:21.6609973Z             {
2026-06-19T05:17:21.6610086Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6610286Z               "line": 961
2026-06-19T05:17:21.6610369Z             },
2026-06-19T05:17:21.6610455Z             {
2026-06-19T05:17:21.6610575Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6610670Z               "line": 9
2026-06-19T05:17:21.6610750Z             },
2026-06-19T05:17:21.6610841Z             {
2026-06-19T05:17:21.6610952Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:17:21.6611032Z               "line": 67
2026-06-19T05:17:21.6611210Z             },
2026-06-19T05:17:21.6611290Z             {
2026-06-19T05:17:21.6611408Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-19T05:17:21.6611490Z               "line": 16
2026-06-19T05:17:21.6611571Z             },
2026-06-19T05:17:21.6611657Z             {
2026-06-19T05:17:21.6611756Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-19T05:17:21.6611853Z               "line": 249
2026-06-19T05:17:21.6611933Z             },
2026-06-19T05:17:21.6612028Z             {
2026-06-19T05:17:21.6612149Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6612234Z               "line": 11
2026-06-19T05:17:21.6612324Z             },
2026-06-19T05:17:21.6612410Z             {
2026-06-19T05:17:21.6612525Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6612610Z               "line": 115
2026-06-19T05:17:21.6612706Z             },
2026-06-19T05:17:21.6612803Z             {
2026-06-19T05:17:21.6612906Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6613009Z               "line": 519
2026-06-19T05:17:21.6613090Z             },
2026-06-19T05:17:21.6613171Z             {
2026-06-19T05:17:21.6613284Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6613374Z               "line": 600
2026-06-19T05:17:21.6613465Z             },
2026-06-19T05:17:21.6613547Z             {
2026-06-19T05:17:21.6617415Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6617548Z               "line": 659
2026-06-19T05:17:21.6617640Z             },
2026-06-19T05:17:21.6617720Z             {
2026-06-19T05:17:21.6617849Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6617940Z               "line": 8
2026-06-19T05:17:21.6618025Z             }
2026-06-19T05:17:21.6618106Z           ]
2026-06-19T05:17:21.6618188Z         },
2026-06-19T05:17:21.6618274Z         "int": {
2026-06-19T05:17:21.6618377Z           "complete": false,
2026-06-19T05:17:21.6618462Z           "evidence": []
2026-06-19T05:17:21.6618549Z         },
2026-06-19T05:17:21.6618635Z         "unit": {
2026-06-19T05:17:21.6618734Z           "complete": true,
2026-06-19T05:17:21.6618824Z           "evidence": [
2026-06-19T05:17:21.6618912Z             {
2026-06-19T05:17:21.6619101Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6619188Z               "line": 7495
2026-06-19T05:17:21.6619278Z             },
2026-06-19T05:17:21.6619387Z             {
2026-06-19T05:17:21.6619498Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6619589Z               "line": 7506
2026-06-19T05:17:21.6619674Z             },
2026-06-19T05:17:21.6619760Z             {
2026-06-19T05:17:21.6619880Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6619969Z               "line": 812
2026-06-19T05:17:21.6620050Z             },
2026-06-19T05:17:21.6620128Z             {
2026-06-19T05:17:21.6620251Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6620341Z               "line": 861
2026-06-19T05:17:21.6620422Z             },
2026-06-19T05:17:21.6620505Z             {
2026-06-19T05:17:21.6620608Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6620693Z               "line": 878
2026-06-19T05:17:21.6620774Z             },
2026-06-19T05:17:21.6620855Z             {
2026-06-19T05:17:21.6620958Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6621048Z               "line": 898
2026-06-19T05:17:21.6621277Z             },
2026-06-19T05:17:21.6621363Z             {
2026-06-19T05:17:21.6621478Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6621564Z               "line": 912
2026-06-19T05:17:21.6621649Z             },
2026-06-19T05:17:21.6621731Z             {
2026-06-19T05:17:21.6621845Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6621940Z               "line": 921
2026-06-19T05:17:21.6622026Z             },
2026-06-19T05:17:21.6622208Z             {
2026-06-19T05:17:21.6622317Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6622404Z               "line": 932
2026-06-19T05:17:21.6622488Z             },
2026-06-19T05:17:21.6622574Z             {
2026-06-19T05:17:21.6622690Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6622766Z               "line": 954
2026-06-19T05:17:21.6622850Z             },
2026-06-19T05:17:21.6622932Z             {
2026-06-19T05:17:21.6623053Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6623132Z               "line": 973
2026-06-19T05:17:21.6623218Z             },
2026-06-19T05:17:21.6623305Z             {
2026-06-19T05:17:21.6623405Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6623489Z               "line": 1022
2026-06-19T05:17:21.6623574Z             },
2026-06-19T05:17:21.6623660Z             {
2026-06-19T05:17:21.6623764Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6623868Z               "line": 1051
2026-06-19T05:17:21.6623959Z             },
2026-06-19T05:17:21.6624026Z             {
2026-06-19T05:17:21.6624144Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6624230Z               "line": 1064
2026-06-19T05:17:21.6624312Z             },
2026-06-19T05:17:21.6624384Z             {
2026-06-19T05:17:21.6624497Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6624588Z               "line": 1108
2026-06-19T05:17:21.6624660Z             },
2026-06-19T05:17:21.6624736Z             {
2026-06-19T05:17:21.6624845Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6624931Z               "line": 1135
2026-06-19T05:17:21.6625018Z             },
2026-06-19T05:17:21.6625098Z             {
2026-06-19T05:17:21.6625208Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:17:21.6625290Z               "line": 1151
2026-06-19T05:17:21.6625375Z             },
2026-06-19T05:17:21.6625456Z             {
2026-06-19T05:17:21.6625576Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6625662Z               "line": 483
2026-06-19T05:17:21.6625732Z             },
2026-06-19T05:17:21.6625818Z             {
2026-06-19T05:17:21.6625930Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6626019Z               "line": 495
2026-06-19T05:17:21.6626103Z             },
2026-06-19T05:17:21.6626189Z             {
2026-06-19T05:17:21.6626303Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6626392Z               "line": 513
2026-06-19T05:17:21.6626482Z             },
2026-06-19T05:17:21.6626559Z             {
2026-06-19T05:17:21.6626669Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6626754Z               "line": 535
2026-06-19T05:17:21.6626840Z             },
2026-06-19T05:17:21.6626922Z             {
2026-06-19T05:17:21.6627026Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6627111Z               "line": 545
2026-06-19T05:17:21.6627194Z             },
2026-06-19T05:17:21.6627274Z             {
2026-06-19T05:17:21.6627374Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:17:21.6627465Z               "line": 570
2026-06-19T05:17:21.6627546Z             }
2026-06-19T05:17:21.6627632Z           ]
2026-06-19T05:17:21.6627712Z         }
2026-06-19T05:17:21.6627798Z       }
2026-06-19T05:17:21.6627880Z     },
2026-06-19T05:17:21.6627961Z     {
2026-06-19T05:17:21.6628157Z       "id": "REQ-RUN-SHORTCUT",
2026-06-19T05:17:21.6632920Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-19T05:17:21.6633144Z       "requiredStages": [
2026-06-19T05:17:21.6633516Z         "doc",
2026-06-19T05:17:21.6633608Z         "impl",
2026-06-19T05:17:21.6633688Z         "unit"
2026-06-19T05:17:21.6633769Z       ],
2026-06-19T05:17:21.6633870Z       "stages": {
2026-06-19T05:17:21.6633961Z         "doc": {
2026-06-19T05:17:21.6634064Z           "complete": true,
2026-06-19T05:17:21.6634149Z           "evidence": [
2026-06-19T05:17:21.6634230Z             {
2026-06-19T05:17:21.6634329Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6634409Z               "line": 387
2026-06-19T05:17:21.6634494Z             }
2026-06-19T05:17:21.6634576Z           ]
2026-06-19T05:17:21.6634658Z         },
2026-06-19T05:17:21.6634738Z         "impl": {
2026-06-19T05:17:21.6634838Z           "complete": true,
2026-06-19T05:17:21.6634939Z           "evidence": [
2026-06-19T05:17:21.6635010Z             {
2026-06-19T05:17:21.6635138Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6635221Z               "line": 39
2026-06-19T05:17:21.6635301Z             },
2026-06-19T05:17:21.6635386Z             {
2026-06-19T05:17:21.6635506Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6635592Z               "line": 79
2026-06-19T05:17:21.6635677Z             },
2026-06-19T05:17:21.6635758Z             {
2026-06-19T05:17:21.6635874Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6635954Z               "line": 162
2026-06-19T05:17:21.6636035Z             }
2026-06-19T05:17:21.6636122Z           ]
2026-06-19T05:17:21.6636207Z         },
2026-06-19T05:17:21.6636287Z         "int": {
2026-06-19T05:17:21.6636383Z           "complete": false,
2026-06-19T05:17:21.6636465Z           "evidence": []
2026-06-19T05:17:21.6636551Z         },
2026-06-19T05:17:21.6636640Z         "unit": {
2026-06-19T05:17:21.6636739Z           "complete": true,
2026-06-19T05:17:21.6636835Z           "evidence": [
2026-06-19T05:17:21.6636914Z             {
2026-06-19T05:17:21.6637042Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6637129Z               "line": 206
2026-06-19T05:17:21.6637215Z             },
2026-06-19T05:17:21.6637300Z             {
2026-06-19T05:17:21.6637414Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6637619Z               "line": 222
2026-06-19T05:17:21.6637705Z             },
2026-06-19T05:17:21.6637787Z             {
2026-06-19T05:17:21.6637901Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6637991Z               "line": 238
2026-06-19T05:17:21.6638078Z             },
2026-06-19T05:17:21.6638159Z             {
2026-06-19T05:17:21.6638287Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6638368Z               "line": 251
2026-06-19T05:17:21.6638521Z             },
2026-06-19T05:17:21.6638597Z             {
2026-06-19T05:17:21.6638718Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:17:21.6638802Z               "line": 258
2026-06-19T05:17:21.6638883Z             }
2026-06-19T05:17:21.6639037Z           ]
2026-06-19T05:17:21.6639117Z         }
2026-06-19T05:17:21.6639202Z       }
2026-06-19T05:17:21.6639279Z     },
2026-06-19T05:17:21.6639366Z     {
2026-06-19T05:17:21.6639488Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-19T05:17:21.6639669Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-19T05:17:21.6639770Z       "requiredStages": [
2026-06-19T05:17:21.6639855Z         "impl",
2026-06-19T05:17:21.6639941Z         "unit"
2026-06-19T05:17:21.6640022Z       ],
2026-06-19T05:17:21.6640103Z       "stages": {
2026-06-19T05:17:21.6640188Z         "doc": {
2026-06-19T05:17:21.6640269Z           "complete": false,
2026-06-19T05:17:21.6640361Z           "evidence": []
2026-06-19T05:17:21.6640442Z         },
2026-06-19T05:17:21.6640527Z         "impl": {
2026-06-19T05:17:21.6640608Z           "complete": true,
2026-06-19T05:17:21.6640694Z           "evidence": [
2026-06-19T05:17:21.6640775Z             {
2026-06-19T05:17:21.6640894Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6640981Z               "line": 18
2026-06-19T05:17:21.6641061Z             },
2026-06-19T05:17:21.6641142Z             {
2026-06-19T05:17:21.6641253Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6641353Z               "line": 35
2026-06-19T05:17:21.6641432Z             },
2026-06-19T05:17:21.6641514Z             {
2026-06-19T05:17:21.6641625Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6641709Z               "line": 72
2026-06-19T05:17:21.6641794Z             }
2026-06-19T05:17:21.6641875Z           ]
2026-06-19T05:17:21.6641947Z         },
2026-06-19T05:17:21.6642027Z         "int": {
2026-06-19T05:17:21.6642121Z           "complete": false,
2026-06-19T05:17:21.6642202Z           "evidence": []
2026-06-19T05:17:21.6642274Z         },
2026-06-19T05:17:21.6642361Z         "unit": {
2026-06-19T05:17:21.6642450Z           "complete": true,
2026-06-19T05:17:21.6642541Z           "evidence": [
2026-06-19T05:17:21.6642627Z             {
2026-06-19T05:17:21.6642731Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6642812Z               "line": 239
2026-06-19T05:17:21.6642899Z             },
2026-06-19T05:17:21.6642984Z             {
2026-06-19T05:17:21.6643088Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6643171Z               "line": 256
2026-06-19T05:17:21.6643257Z             },
2026-06-19T05:17:21.6643333Z             {
2026-06-19T05:17:21.6643447Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6643528Z               "line": 265
2026-06-19T05:17:21.6643614Z             }
2026-06-19T05:17:21.6643685Z           ]
2026-06-19T05:17:21.6643776Z         }
2026-06-19T05:17:21.6643863Z       }
2026-06-19T05:17:21.6643942Z     },
2026-06-19T05:17:21.6644024Z     {
2026-06-19T05:17:21.6644115Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-19T05:17:21.6644276Z       "title": "Hostable endpoint-types capability declaration",
2026-06-19T05:17:21.6644367Z       "requiredStages": [
2026-06-19T05:17:21.6644454Z         "impl",
2026-06-19T05:17:21.6644535Z         "unit"
2026-06-19T05:17:21.6644614Z       ],
2026-06-19T05:17:21.6644704Z       "stages": {
2026-06-19T05:17:21.6644894Z         "doc": {
2026-06-19T05:17:21.6644979Z           "complete": false,
2026-06-19T05:17:21.6645069Z           "evidence": []
2026-06-19T05:17:21.6645156Z         },
2026-06-19T05:17:21.6645242Z         "impl": {
2026-06-19T05:17:21.6645336Z           "complete": true,
2026-06-19T05:17:21.6645427Z           "evidence": [
2026-06-19T05:17:21.6645504Z             {
2026-06-19T05:17:21.6645631Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6645809Z               "line": 594
2026-06-19T05:17:21.6645899Z             }
2026-06-19T05:17:21.6645984Z           ]
2026-06-19T05:17:21.6646066Z         },
2026-06-19T05:17:21.6646156Z         "int": {
2026-06-19T05:17:21.6646247Z           "complete": false,
2026-06-19T05:17:21.6646337Z           "evidence": []
2026-06-19T05:17:21.6646420Z         },
2026-06-19T05:17:21.6646504Z         "unit": {
2026-06-19T05:17:21.6646600Z           "complete": true,
2026-06-19T05:17:21.6646687Z           "evidence": [
2026-06-19T05:17:21.6646777Z             {
2026-06-19T05:17:21.6646895Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6646977Z               "line": 963
2026-06-19T05:17:21.6647050Z             }
2026-06-19T05:17:21.6647134Z           ]
2026-06-19T05:17:21.6647214Z         }
2026-06-19T05:17:21.6647299Z       }
2026-06-19T05:17:21.6647371Z     },
2026-06-19T05:17:21.6647456Z     {
2026-06-19T05:17:21.6647560Z       "id": "REQ-SEAM-HISTORY",
2026-06-19T05:17:21.6647732Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-19T05:17:21.6647836Z       "requiredStages": [
2026-06-19T05:17:21.6647926Z         "impl",
2026-06-19T05:17:21.6648004Z         "unit",
2026-06-19T05:17:21.6648085Z         "int"
2026-06-19T05:17:21.6648160Z       ],
2026-06-19T05:17:21.6648241Z       "stages": {
2026-06-19T05:17:21.6648324Z         "doc": {
2026-06-19T05:17:21.6648418Z           "complete": false,
2026-06-19T05:17:21.6648518Z           "evidence": []
2026-06-19T05:17:21.6648604Z         },
2026-06-19T05:17:21.6648681Z         "impl": {
2026-06-19T05:17:21.6648761Z           "complete": true,
2026-06-19T05:17:21.6648842Z           "evidence": [
2026-06-19T05:17:21.6648924Z             {
2026-06-19T05:17:21.6649119Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.6649209Z               "line": 24
2026-06-19T05:17:21.6649292Z             },
2026-06-19T05:17:21.6649386Z             {
2026-06-19T05:17:21.6649496Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6649583Z               "line": 22
2026-06-19T05:17:21.6649668Z             }
2026-06-19T05:17:21.6649748Z           ]
2026-06-19T05:17:21.6649829Z         },
2026-06-19T05:17:21.6649912Z         "int": {
2026-06-19T05:17:21.6650011Z           "complete": true,
2026-06-19T05:17:21.6650096Z           "evidence": [
2026-06-19T05:17:21.6650181Z             {
2026-06-19T05:17:21.6650297Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.6650391Z               "line": 260
2026-06-19T05:17:21.6650471Z             }
2026-06-19T05:17:21.6650554Z           ]
2026-06-19T05:17:21.6650635Z         },
2026-06-19T05:17:21.6650720Z         "unit": {
2026-06-19T05:17:21.6650815Z           "complete": true,
2026-06-19T05:17:21.6650892Z           "evidence": [
2026-06-19T05:17:21.6650983Z             {
2026-06-19T05:17:21.6651096Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.6651173Z               "line": 171
2026-06-19T05:17:21.6651264Z             },
2026-06-19T05:17:21.6651345Z             {
2026-06-19T05:17:21.6651449Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.6651536Z               "line": 200
2026-06-19T05:17:21.6651617Z             },
2026-06-19T05:17:21.6651693Z             {
2026-06-19T05:17:21.6651803Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:17:21.6651880Z               "line": 220
2026-06-19T05:17:21.6651960Z             },
2026-06-19T05:17:21.6652046Z             {
2026-06-19T05:17:21.6652265Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6652345Z               "line": 199
2026-06-19T05:17:21.6652435Z             },
2026-06-19T05:17:21.6652516Z             {
2026-06-19T05:17:21.6652629Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6652714Z               "line": 219
2026-06-19T05:17:21.6652796Z             },
2026-06-19T05:17:21.6652877Z             {
2026-06-19T05:17:21.6652991Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6653192Z               "line": 244
2026-06-19T05:17:21.6653278Z             },
2026-06-19T05:17:21.6653358Z             {
2026-06-19T05:17:21.6653474Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6653559Z               "line": 276
2026-06-19T05:17:21.6653644Z             },
2026-06-19T05:17:21.6653736Z             {
2026-06-19T05:17:21.6653850Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6653940Z               "line": 297
2026-06-19T05:17:21.6654031Z             },
2026-06-19T05:17:21.6654112Z             {
2026-06-19T05:17:21.6654227Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:17:21.6654316Z               "line": 324
2026-06-19T05:17:21.6654403Z             }
2026-06-19T05:17:21.6654493Z           ]
2026-06-19T05:17:21.6654565Z         }
2026-06-19T05:17:21.6654656Z       }
2026-06-19T05:17:21.6654738Z     },
2026-06-19T05:17:21.6654822Z     {
2026-06-19T05:17:21.6654917Z       "id": "REQ-SEAM-INJECT",
2026-06-19T05:17:21.6655086Z       "title": "inject-input methods configurable per activity-state",
2026-06-19T05:17:21.6655179Z       "requiredStages": [
2026-06-19T05:17:21.6655264Z         "impl",
2026-06-19T05:17:21.6655351Z         "unit"
2026-06-19T05:17:21.6655426Z       ],
2026-06-19T05:17:21.6655515Z       "stages": {
2026-06-19T05:17:21.6655591Z         "doc": {
2026-06-19T05:17:21.6655677Z           "complete": false,
2026-06-19T05:17:21.6655773Z           "evidence": []
2026-06-19T05:17:21.6655862Z         },
2026-06-19T05:17:21.6655953Z         "impl": {
2026-06-19T05:17:21.6656045Z           "complete": true,
2026-06-19T05:17:21.6656136Z           "evidence": [
2026-06-19T05:17:21.6656220Z             {
2026-06-19T05:17:21.6656336Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6656426Z               "line": 19
2026-06-19T05:17:21.6656511Z             },
2026-06-19T05:17:21.6656597Z             {
2026-06-19T05:17:21.6656703Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6656803Z               "line": 111
2026-06-19T05:17:21.6656884Z             }
2026-06-19T05:17:21.6656970Z           ]
2026-06-19T05:17:21.6657060Z         },
2026-06-19T05:17:21.6657141Z         "int": {
2026-06-19T05:17:21.6657237Z           "complete": false,
2026-06-19T05:17:21.6657323Z           "evidence": []
2026-06-19T05:17:21.6657402Z         },
2026-06-19T05:17:21.6657489Z         "unit": {
2026-06-19T05:17:21.6657585Z           "complete": true,
2026-06-19T05:17:21.6657680Z           "evidence": [
2026-06-19T05:17:21.6657765Z             {
2026-06-19T05:17:21.6657879Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6657965Z               "line": 345
2026-06-19T05:17:21.6658049Z             },
2026-06-19T05:17:21.6658129Z             {
2026-06-19T05:17:21.6658254Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6658336Z               "line": 365
2026-06-19T05:17:21.6658415Z             }
2026-06-19T05:17:21.6658501Z           ]
2026-06-19T05:17:21.6658588Z         }
2026-06-19T05:17:21.6658674Z       }
2026-06-19T05:17:21.6658754Z     },
2026-06-19T05:17:21.6658835Z     {
2026-06-19T05:17:21.6659012Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-19T05:17:21.6659150Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-19T05:17:21.6659246Z       "requiredStages": [
2026-06-19T05:17:21.6659326Z         "impl",
2026-06-19T05:17:21.6659426Z         "unit"
2026-06-19T05:17:21.6659598Z       ],
2026-06-19T05:17:21.6659684Z       "stages": {
2026-06-19T05:17:21.6659769Z         "doc": {
2026-06-19T05:17:21.6659862Z           "complete": false,
2026-06-19T05:17:21.6659951Z           "evidence": []
2026-06-19T05:17:21.6660022Z         },
2026-06-19T05:17:21.6660114Z         "impl": {
2026-06-19T05:17:21.6660209Z           "complete": true,
2026-06-19T05:17:21.6660303Z           "evidence": [
2026-06-19T05:17:21.6660380Z             {
2026-06-19T05:17:21.6660501Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6660684Z               "line": 18
2026-06-19T05:17:21.6660770Z             },
2026-06-19T05:17:21.6660852Z             {
2026-06-19T05:17:21.6660970Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6661056Z               "line": 407
2026-06-19T05:17:21.6661152Z             }
2026-06-19T05:17:21.6661228Z           ]
2026-06-19T05:17:21.6661313Z         },
2026-06-19T05:17:21.6661404Z         "int": {
2026-06-19T05:17:21.6661505Z           "complete": false,
2026-06-19T05:17:21.6661586Z           "evidence": []
2026-06-19T05:17:21.6661675Z         },
2026-06-19T05:17:21.6661763Z         "unit": {
2026-06-19T05:17:21.6661843Z           "complete": true,
2026-06-19T05:17:21.6661933Z           "evidence": [
2026-06-19T05:17:21.6662014Z             {
2026-06-19T05:17:21.6662120Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6662210Z               "line": 764
2026-06-19T05:17:21.6662296Z             },
2026-06-19T05:17:21.6662383Z             {
2026-06-19T05:17:21.6662492Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6662582Z               "line": 774
2026-06-19T05:17:21.6662663Z             }
2026-06-19T05:17:21.6662745Z           ]
2026-06-19T05:17:21.6662825Z         }
2026-06-19T05:17:21.6662910Z       }
2026-06-19T05:17:21.6662995Z     },
2026-06-19T05:17:21.6663076Z     {
2026-06-19T05:17:21.6663166Z       "id": "REQ-SEAM-PSYCHE",
2026-06-19T05:17:21.6663308Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-19T05:17:21.6663409Z       "requiredStages": [
2026-06-19T05:17:21.6663489Z         "impl",
2026-06-19T05:17:21.6663574Z         "unit",
2026-06-19T05:17:21.6663656Z         "int"
2026-06-19T05:17:21.6663738Z       ],
2026-06-19T05:17:21.6663833Z       "stages": {
2026-06-19T05:17:21.6663913Z         "doc": {
2026-06-19T05:17:21.6664010Z           "complete": false,
2026-06-19T05:17:21.6664086Z           "evidence": []
2026-06-19T05:17:21.6664176Z         },
2026-06-19T05:17:21.6664267Z         "impl": {
2026-06-19T05:17:21.6664353Z           "complete": true,
2026-06-19T05:17:21.6664438Z           "evidence": [
2026-06-19T05:17:21.6664524Z             {
2026-06-19T05:17:21.6664635Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:17:21.6664724Z               "line": 19
2026-06-19T05:17:21.6664810Z             },
2026-06-19T05:17:21.6664891Z             {
2026-06-19T05:17:21.6664992Z               "path": "crates/spt/src/api/live.rs",
2026-06-19T05:17:21.6665096Z               "line": 12
2026-06-19T05:17:21.6665182Z             },
2026-06-19T05:17:21.6665269Z             {
2026-06-19T05:17:21.6665378Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6665473Z               "line": 277
2026-06-19T05:17:21.6665560Z             }
2026-06-19T05:17:21.6665636Z           ]
2026-06-19T05:17:21.6665721Z         },
2026-06-19T05:17:21.6665801Z         "int": {
2026-06-19T05:17:21.6665901Z           "complete": true,
2026-06-19T05:17:21.6665986Z           "evidence": [
2026-06-19T05:17:21.6666071Z             {
2026-06-19T05:17:21.6666194Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.6666286Z               "line": 259
2026-06-19T05:17:21.6666371Z             }
2026-06-19T05:17:21.6666456Z           ]
2026-06-19T05:17:21.6666548Z         },
2026-06-19T05:17:21.6666634Z         "unit": {
2026-06-19T05:17:21.6666728Z           "complete": true,
2026-06-19T05:17:21.6666823Z           "evidence": [
2026-06-19T05:17:21.6666986Z             {
2026-06-19T05:17:21.6667104Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:17:21.6667187Z               "line": 195
2026-06-19T05:17:21.6667277Z             },
2026-06-19T05:17:21.6667358Z             {
2026-06-19T05:17:21.6667467Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:17:21.6667559Z               "line": 202
2026-06-19T05:17:21.6667643Z             },
2026-06-19T05:17:21.6667720Z             {
2026-06-19T05:17:21.6667893Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:17:21.6667986Z               "line": 225
2026-06-19T05:17:21.6668063Z             },
2026-06-19T05:17:21.6668150Z             {
2026-06-19T05:17:21.6668269Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-19T05:17:21.6668349Z               "line": 106
2026-06-19T05:17:21.6668439Z             },
2026-06-19T05:17:21.6668520Z             {
2026-06-19T05:17:21.6668632Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-19T05:17:21.6668732Z               "line": 137
2026-06-19T05:17:21.6668804Z             },
2026-06-19T05:17:21.6668886Z             {
2026-06-19T05:17:21.6669061Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-19T05:17:21.6669148Z               "line": 161
2026-06-19T05:17:21.6669224Z             }
2026-06-19T05:17:21.6669309Z           ]
2026-06-19T05:17:21.6669415Z         }
2026-06-19T05:17:21.6669496Z       }
2026-06-19T05:17:21.6669582Z     },
2026-06-19T05:17:21.6669667Z     {
2026-06-19T05:17:21.6669768Z       "id": "REQ-SEAM-RESUME",
2026-06-19T05:17:21.6669957Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-19T05:17:21.6670049Z       "requiredStages": [
2026-06-19T05:17:21.6670135Z         "impl",
2026-06-19T05:17:21.6670211Z         "unit"
2026-06-19T05:17:21.6670296Z       ],
2026-06-19T05:17:21.6670374Z       "stages": {
2026-06-19T05:17:21.6670459Z         "doc": {
2026-06-19T05:17:21.6670544Z           "complete": false,
2026-06-19T05:17:21.6670640Z           "evidence": []
2026-06-19T05:17:21.6670727Z         },
2026-06-19T05:17:21.6670811Z         "impl": {
2026-06-19T05:17:21.6670907Z           "complete": true,
2026-06-19T05:17:21.6670994Z           "evidence": [
2026-06-19T05:17:21.6671080Z             {
2026-06-19T05:17:21.6671182Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.6671272Z               "line": 19
2026-06-19T05:17:21.6671354Z             }
2026-06-19T05:17:21.6671436Z           ]
2026-06-19T05:17:21.6671526Z         },
2026-06-19T05:17:21.6671606Z         "int": {
2026-06-19T05:17:21.6671712Z           "complete": false,
2026-06-19T05:17:21.6671793Z           "evidence": []
2026-06-19T05:17:21.6671878Z         },
2026-06-19T05:17:21.6671965Z         "unit": {
2026-06-19T05:17:21.6672055Z           "complete": true,
2026-06-19T05:17:21.6672141Z           "evidence": [
2026-06-19T05:17:21.6672226Z             {
2026-06-19T05:17:21.6672342Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.6672422Z               "line": 201
2026-06-19T05:17:21.6672512Z             },
2026-06-19T05:17:21.6672594Z             {
2026-06-19T05:17:21.6672704Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.6672794Z               "line": 223
2026-06-19T05:17:21.6672875Z             },
2026-06-19T05:17:21.6672962Z             {
2026-06-19T05:17:21.6673070Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:17:21.6673151Z               "line": 244
2026-06-19T05:17:21.6673238Z             }
2026-06-19T05:17:21.6673320Z           ]
2026-06-19T05:17:21.6673404Z         }
2026-06-19T05:17:21.6673484Z       }
2026-06-19T05:17:21.6673560Z     },
2026-06-19T05:17:21.6673641Z     {
2026-06-19T05:17:21.6673744Z       "id": "REQ-SEAM-SPAWN",
2026-06-19T05:17:21.6673849Z       "title": "spawn-session seam",
2026-06-19T05:17:21.6673945Z       "requiredStages": [
2026-06-19T05:17:21.6674036Z         "impl",
2026-06-19T05:17:21.6674121Z         "unit"
2026-06-19T05:17:21.6674313Z       ],
2026-06-19T05:17:21.6674402Z       "stages": {
2026-06-19T05:17:21.6674492Z         "doc": {
2026-06-19T05:17:21.6674584Z           "complete": false,
2026-06-19T05:17:21.6674674Z           "evidence": []
2026-06-19T05:17:21.6674760Z         },
2026-06-19T05:17:21.6674841Z         "impl": {
2026-06-19T05:17:21.6674941Z           "complete": true,
2026-06-19T05:17:21.6675027Z           "evidence": [
2026-06-19T05:17:21.6675107Z             {
2026-06-19T05:17:21.6675232Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6675413Z               "line": 20
2026-06-19T05:17:21.6675495Z             }
2026-06-19T05:17:21.6675576Z           ]
2026-06-19T05:17:21.6675656Z         },
2026-06-19T05:17:21.6675742Z         "int": {
2026-06-19T05:17:21.6675834Z           "complete": false,
2026-06-19T05:17:21.6675919Z           "evidence": []
2026-06-19T05:17:21.6675999Z         },
2026-06-19T05:17:21.6676086Z         "unit": {
2026-06-19T05:17:21.6676177Z           "complete": true,
2026-06-19T05:17:21.6676276Z           "evidence": [
2026-06-19T05:17:21.6676361Z             {
2026-06-19T05:17:21.6676485Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6676574Z               "line": 608
2026-06-19T05:17:21.6676664Z             },
2026-06-19T05:17:21.6676749Z             {
2026-06-19T05:17:21.6676865Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6676960Z               "line": 615
2026-06-19T05:17:21.6677045Z             },
2026-06-19T05:17:21.6677127Z             {
2026-06-19T05:17:21.6677242Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6677331Z               "line": 721
2026-06-19T05:17:21.6677413Z             },
2026-06-19T05:17:21.6677499Z             {
2026-06-19T05:17:21.6677613Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6677699Z               "line": 727
2026-06-19T05:17:21.6677780Z             },
2026-06-19T05:17:21.6677875Z             {
2026-06-19T05:17:21.6677979Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6678072Z               "line": 752
2026-06-19T05:17:21.6678152Z             },
2026-06-19T05:17:21.6678237Z             {
2026-06-19T05:17:21.6678343Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:17:21.6678434Z               "line": 789
2026-06-19T05:17:21.6678514Z             }
2026-06-19T05:17:21.6678590Z           ]
2026-06-19T05:17:21.6678677Z         }
2026-06-19T05:17:21.6678763Z       }
2026-06-19T05:17:21.6678848Z     },
2026-06-19T05:17:21.6678928Z     {
2026-06-19T05:17:21.6679085Z       "id": "REQ-SEAM-UPDATE",
2026-06-19T05:17:21.6679259Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-19T05:17:21.6679345Z       "requiredStages": [
2026-06-19T05:17:21.6679436Z         "impl",
2026-06-19T05:17:21.6679521Z         "unit"
2026-06-19T05:17:21.6679607Z       ],
2026-06-19T05:17:21.6679689Z       "stages": {
2026-06-19T05:17:21.6679774Z         "doc": {
2026-06-19T05:17:21.6679869Z           "complete": false,
2026-06-19T05:17:21.6679945Z           "evidence": []
2026-06-19T05:17:21.6680028Z         },
2026-06-19T05:17:21.6680108Z         "impl": {
2026-06-19T05:17:21.6680203Z           "complete": true,
2026-06-19T05:17:21.6680290Z           "evidence": [
2026-06-19T05:17:21.6680371Z             {
2026-06-19T05:17:21.6680494Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.6680584Z               "line": 28
2026-06-19T05:17:21.6680681Z             },
2026-06-19T05:17:21.6680761Z             {
2026-06-19T05:17:21.6680909Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.6680991Z               "line": 88
2026-06-19T05:17:21.6681071Z             }
2026-06-19T05:17:21.6681156Z           ]
2026-06-19T05:17:21.6681234Z         },
2026-06-19T05:17:21.6681325Z         "int": {
2026-06-19T05:17:21.6681418Z           "complete": false,
2026-06-19T05:17:21.6681606Z           "evidence": []
2026-06-19T05:17:21.6681682Z         },
2026-06-19T05:17:21.6681771Z         "unit": {
2026-06-19T05:17:21.6681866Z           "complete": true,
2026-06-19T05:17:21.6681943Z           "evidence": [
2026-06-19T05:17:21.6682025Z             {
2026-06-19T05:17:21.6682152Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.6682238Z               "line": 326
2026-06-19T05:17:21.6682324Z             },
2026-06-19T05:17:21.6682405Z             {
2026-06-19T05:17:21.6682658Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.6682743Z               "line": 337
2026-06-19T05:17:21.6682830Z             }
2026-06-19T05:17:21.6682912Z           ]
2026-06-19T05:17:21.6682996Z         }
2026-06-19T05:17:21.6683077Z       }
2026-06-19T05:17:21.6683164Z     },
2026-06-19T05:17:21.6683250Z     {
2026-06-19T05:17:21.6683330Z       "id": "REQ-SEC-1",
2026-06-19T05:17:21.6686427Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-19T05:17:21.6686564Z       "requiredStages": [
2026-06-19T05:17:21.6686661Z         "impl",
2026-06-19T05:17:21.6686742Z         "unit"
2026-06-19T05:17:21.6686817Z       ],
2026-06-19T05:17:21.6686902Z       "stages": {
2026-06-19T05:17:21.6686983Z         "doc": {
2026-06-19T05:17:21.6687083Z           "complete": false,
2026-06-19T05:17:21.6687162Z           "evidence": []
2026-06-19T05:17:21.6687257Z         },
2026-06-19T05:17:21.6687338Z         "impl": {
2026-06-19T05:17:21.6687430Z           "complete": true,
2026-06-19T05:17:21.6687520Z           "evidence": [
2026-06-19T05:17:21.6687595Z             {
2026-06-19T05:17:21.6687721Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.6687806Z               "line": 86
2026-06-19T05:17:21.6687896Z             },
2026-06-19T05:17:21.6687973Z             {
2026-06-19T05:17:21.6688102Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.6688197Z               "line": 116
2026-06-19T05:17:21.6688278Z             },
2026-06-19T05:17:21.6688359Z             {
2026-06-19T05:17:21.6688464Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.6688549Z               "line": 130
2026-06-19T05:17:21.6688637Z             },
2026-06-19T05:17:21.6688722Z             {
2026-06-19T05:17:21.6688826Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6688908Z               "line": 109
2026-06-19T05:17:21.6689093Z             },
2026-06-19T05:17:21.6689174Z             {
2026-06-19T05:17:21.6689290Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6689394Z               "line": 130
2026-06-19T05:17:21.6689469Z             },
2026-06-19T05:17:21.6689549Z             {
2026-06-19T05:17:21.6689650Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6689739Z               "line": 143
2026-06-19T05:17:21.6689819Z             },
2026-06-19T05:17:21.6689910Z             {
2026-06-19T05:17:21.6690021Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6690110Z               "line": 209
2026-06-19T05:17:21.6690186Z             },
2026-06-19T05:17:21.6690273Z             {
2026-06-19T05:17:21.6690383Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6690472Z               "line": 235
2026-06-19T05:17:21.6690559Z             },
2026-06-19T05:17:21.6690631Z             {
2026-06-19T05:17:21.6690735Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6690825Z               "line": 5152
2026-06-19T05:17:21.6690912Z             }
2026-06-19T05:17:21.6690992Z           ]
2026-06-19T05:17:21.6691073Z         },
2026-06-19T05:17:21.6691159Z         "int": {
2026-06-19T05:17:21.6691241Z           "complete": false,
2026-06-19T05:17:21.6691331Z           "evidence": []
2026-06-19T05:17:21.6691416Z         },
2026-06-19T05:17:21.6691504Z         "unit": {
2026-06-19T05:17:21.6691731Z           "complete": true,
2026-06-19T05:17:21.6691814Z           "evidence": [
2026-06-19T05:17:21.6691895Z             {
2026-06-19T05:17:21.6692008Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.6692099Z               "line": 142
2026-06-19T05:17:21.6692190Z             },
2026-06-19T05:17:21.6692270Z             {
2026-06-19T05:17:21.6692374Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.6692455Z               "line": 194
2026-06-19T05:17:21.6692636Z             },
2026-06-19T05:17:21.6692717Z             {
2026-06-19T05:17:21.6692833Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:17:21.6692919Z               "line": 235
2026-06-19T05:17:21.6692998Z             },
2026-06-19T05:17:21.6693080Z             {
2026-06-19T05:17:21.6693199Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-19T05:17:21.6693280Z               "line": 140
2026-06-19T05:17:21.6693370Z             },
2026-06-19T05:17:21.6693453Z             {
2026-06-19T05:17:21.6693561Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6693637Z               "line": 247
2026-06-19T05:17:21.6693719Z             },
2026-06-19T05:17:21.6693792Z             {
2026-06-19T05:17:21.6693905Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6693986Z               "line": 277
2026-06-19T05:17:21.6694068Z             },
2026-06-19T05:17:21.6694153Z             {
2026-06-19T05:17:21.6694262Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6694358Z               "line": 310
2026-06-19T05:17:21.6694440Z             },
2026-06-19T05:17:21.6694519Z             {
2026-06-19T05:17:21.6694638Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6694719Z               "line": 329
2026-06-19T05:17:21.6694799Z             },
2026-06-19T05:17:21.6694922Z             {
2026-06-19T05:17:21.6695026Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6695113Z               "line": 362
2026-06-19T05:17:21.6695198Z             },
2026-06-19T05:17:21.6695283Z             {
2026-06-19T05:17:21.6695385Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:17:21.6695466Z               "line": 386
2026-06-19T05:17:21.6695546Z             },
2026-06-19T05:17:21.6695627Z             {
2026-06-19T05:17:21.6695733Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6695823Z               "line": 8101
2026-06-19T05:17:21.6695909Z             }
2026-06-19T05:17:21.6695981Z           ]
2026-06-19T05:17:21.6696066Z         }
2026-06-19T05:17:21.6696147Z       }
2026-06-19T05:17:21.6696233Z     },
2026-06-19T05:17:21.6696300Z     {
2026-06-19T05:17:21.6696409Z       "id": "REQ-SEND-SPT-HOSTED",
2026-06-19T05:17:21.6700138Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
2026-06-19T05:17:21.6700364Z       "requiredStages": [
2026-06-19T05:17:21.6700451Z         "impl",
2026-06-19T05:17:21.6700533Z         "unit",
2026-06-19T05:17:21.6700618Z         "int"
2026-06-19T05:17:21.6700708Z       ],
2026-06-19T05:17:21.6700785Z       "stages": {
2026-06-19T05:17:21.6700872Z         "doc": {
2026-06-19T05:17:21.6700966Z           "complete": false,
2026-06-19T05:17:21.6701047Z           "evidence": []
2026-06-19T05:17:21.6701129Z         },
2026-06-19T05:17:21.6701309Z         "impl": {
2026-06-19T05:17:21.6701405Z           "complete": true,
2026-06-19T05:17:21.6701486Z           "evidence": [
2026-06-19T05:17:21.6701566Z             {
2026-06-19T05:17:21.6701691Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.6701777Z               "line": 1018
2026-06-19T05:17:21.6701858Z             },
2026-06-19T05:17:21.6701939Z             {
2026-06-19T05:17:21.6702064Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.6702163Z               "line": 1061
2026-06-19T05:17:21.6702244Z             },
2026-06-19T05:17:21.6702330Z             {
2026-06-19T05:17:21.6702436Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6702525Z               "line": 2726
2026-06-19T05:17:21.6702606Z             }
2026-06-19T05:17:21.6702693Z           ]
2026-06-19T05:17:21.6702774Z         },
2026-06-19T05:17:21.6702858Z         "int": {
2026-06-19T05:17:21.6702948Z           "complete": true,
2026-06-19T05:17:21.6703035Z           "evidence": [
2026-06-19T05:17:21.6703116Z             {
2026-06-19T05:17:21.6703234Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:17:21.6703320Z               "line": 187
2026-06-19T05:17:21.6703407Z             },
2026-06-19T05:17:21.6703479Z             {
2026-06-19T05:17:21.6703597Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:17:21.6703679Z               "line": 503
2026-06-19T05:17:21.6703760Z             }
2026-06-19T05:17:21.6703845Z           ]
2026-06-19T05:17:21.6703931Z         },
2026-06-19T05:17:21.6704013Z         "unit": {
2026-06-19T05:17:21.6704098Z           "complete": true,
2026-06-19T05:17:21.6704188Z           "evidence": [
2026-06-19T05:17:21.6704269Z             {
2026-06-19T05:17:21.6704380Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:17:21.6704450Z               "line": 904
2026-06-19T05:17:21.6704536Z             },
2026-06-19T05:17:21.6704623Z             {
2026-06-19T05:17:21.6704732Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6704823Z               "line": 7343
2026-06-19T05:17:21.6704904Z             }
2026-06-19T05:17:21.6704986Z           ]
2026-06-19T05:17:21.6705070Z         }
2026-06-19T05:17:21.6705155Z       }
2026-06-19T05:17:21.6705241Z     },
2026-06-19T05:17:21.6705322Z     {
2026-06-19T05:17:21.6705420Z       "id": "REQ-SHELL-1",
2026-06-19T05:17:21.6706284Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-19T05:17:21.6706388Z       "requiredStages": [
2026-06-19T05:17:21.6706473Z         "impl",
2026-06-19T05:17:21.6706556Z         "unit",
2026-06-19T05:17:21.6706645Z         "int"
2026-06-19T05:17:21.6706731Z       ],
2026-06-19T05:17:21.6706812Z       "stages": {
2026-06-19T05:17:21.6706899Z         "doc": {
2026-06-19T05:17:21.6706984Z           "complete": false,
2026-06-19T05:17:21.6707074Z           "evidence": []
2026-06-19T05:17:21.6707161Z         },
2026-06-19T05:17:21.6707238Z         "impl": {
2026-06-19T05:17:21.6707331Z           "complete": true,
2026-06-19T05:17:21.6707418Z           "evidence": [
2026-06-19T05:17:21.6707500Z             {
2026-06-19T05:17:21.6707622Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6707786Z               "line": 189
2026-06-19T05:17:21.6707863Z             },
2026-06-19T05:17:21.6707947Z             {
2026-06-19T05:17:21.6708069Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6708146Z               "line": 268
2026-06-19T05:17:21.6708232Z             },
2026-06-19T05:17:21.6708320Z             {
2026-06-19T05:17:21.6708440Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6708521Z               "line": 27
2026-06-19T05:17:21.6708673Z             },
2026-06-19T05:17:21.6708759Z             {
2026-06-19T05:17:21.6708879Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6709044Z               "line": 52
2026-06-19T05:17:21.6709123Z             },
2026-06-19T05:17:21.6709203Z             {
2026-06-19T05:17:21.6709312Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6709408Z               "line": 144
2026-06-19T05:17:21.6709494Z             },
2026-06-19T05:17:21.6709579Z             {
2026-06-19T05:17:21.6709689Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6709771Z               "line": 176
2026-06-19T05:17:21.6709856Z             },
2026-06-19T05:17:21.6709937Z             {
2026-06-19T05:17:21.6710057Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6710138Z               "line": 22
2026-06-19T05:17:21.6710218Z             },
2026-06-19T05:17:21.6710300Z             {
2026-06-19T05:17:21.6710420Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6710509Z               "line": 65
2026-06-19T05:17:21.6710594Z             },
2026-06-19T05:17:21.6710670Z             {
2026-06-19T05:17:21.6710784Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6710868Z               "line": 76
2026-06-19T05:17:21.6710953Z             },
2026-06-19T05:17:21.6711030Z             {
2026-06-19T05:17:21.6711150Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6711240Z               "line": 151
2026-06-19T05:17:21.6711316Z             },
2026-06-19T05:17:21.6711398Z             {
2026-06-19T05:17:21.6711517Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6711607Z               "line": 210
2026-06-19T05:17:21.6711685Z             },
2026-06-19T05:17:21.6711770Z             {
2026-06-19T05:17:21.6711884Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6711970Z               "line": 258
2026-06-19T05:17:21.6712060Z             },
2026-06-19T05:17:21.6712146Z             {
2026-06-19T05:17:21.6712260Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6712338Z               "line": 280
2026-06-19T05:17:21.6712427Z             },
2026-06-19T05:17:21.6712508Z             {
2026-06-19T05:17:21.6712629Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6712714Z               "line": 293
2026-06-19T05:17:21.6712799Z             },
2026-06-19T05:17:21.6712885Z             {
2026-06-19T05:17:21.6712996Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.6713080Z               "line": 217
2026-06-19T05:17:21.6713162Z             },
2026-06-19T05:17:21.6713244Z             {
2026-06-19T05:17:21.6713348Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.6713428Z               "line": 233
2026-06-19T05:17:21.6713518Z             },
2026-06-19T05:17:21.6713590Z             {
2026-06-19T05:17:21.6713719Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.6713799Z               "line": 41
2026-06-19T05:17:21.6713880Z             },
2026-06-19T05:17:21.6713953Z             {
2026-06-19T05:17:21.6714062Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.6714147Z               "line": 222
2026-06-19T05:17:21.6714225Z             },
2026-06-19T05:17:21.6714310Z             {
2026-06-19T05:17:21.6714415Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:17:21.6714620Z               "line": 173
2026-06-19T05:17:21.6714701Z             },
2026-06-19T05:17:21.6714781Z             {
2026-06-19T05:17:21.6714888Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6714978Z               "line": 354
2026-06-19T05:17:21.6715059Z             },
2026-06-19T05:17:21.6715140Z             {
2026-06-19T05:17:21.6715250Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6715334Z               "line": 419
2026-06-19T05:17:21.6715513Z             },
2026-06-19T05:17:21.6715598Z             {
2026-06-19T05:17:21.6715711Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6715791Z               "line": 329
2026-06-19T05:17:21.6715882Z             },
2026-06-19T05:17:21.6715962Z             {
2026-06-19T05:17:21.6716070Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6716152Z               "line": 6177
2026-06-19T05:17:21.6716238Z             },
2026-06-19T05:17:21.6716323Z             {
2026-06-19T05:17:21.6716428Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6716515Z               "line": 6327
2026-06-19T05:17:21.6716596Z             },
2026-06-19T05:17:21.6716680Z             {
2026-06-19T05:17:21.6716777Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6716867Z               "line": 6503
2026-06-19T05:17:21.6716944Z             }
2026-06-19T05:17:21.6717024Z           ]
2026-06-19T05:17:21.6717106Z         },
2026-06-19T05:17:21.6717192Z         "int": {
2026-06-19T05:17:21.6717282Z           "complete": true,
2026-06-19T05:17:21.6717368Z           "evidence": [
2026-06-19T05:17:21.6717454Z             {
2026-06-19T05:17:21.6717583Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6717663Z               "line": 711
2026-06-19T05:17:21.6717745Z             },
2026-06-19T05:17:21.6717826Z             {
2026-06-19T05:17:21.6717944Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-19T05:17:21.6718036Z               "line": 8
2026-06-19T05:17:21.6718127Z             },
2026-06-19T05:17:21.6718206Z             {
2026-06-19T05:17:21.6718326Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-19T05:17:21.6718408Z               "line": 49
2026-06-19T05:17:21.6718493Z             },
2026-06-19T05:17:21.6718578Z             {
2026-06-19T05:17:21.6718692Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6718783Z               "line": 777
2026-06-19T05:17:21.6718857Z             },
2026-06-19T05:17:21.6719024Z             {
2026-06-19T05:17:21.6719144Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6719238Z               "line": 1212
2026-06-19T05:17:21.6719324Z             },
2026-06-19T05:17:21.6719410Z             {
2026-06-19T05:17:21.6719533Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-19T05:17:21.6719614Z               "line": 17
2026-06-19T05:17:21.6719697Z             },
2026-06-19T05:17:21.6719782Z             {
2026-06-19T05:17:21.6719886Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-19T05:17:21.6719968Z               "line": 14
2026-06-19T05:17:21.6720040Z             }
2026-06-19T05:17:21.6720120Z           ]
2026-06-19T05:17:21.6720201Z         },
2026-06-19T05:17:21.6720278Z         "unit": {
2026-06-19T05:17:21.6720364Z           "complete": true,
2026-06-19T05:17:21.6720444Z           "evidence": [
2026-06-19T05:17:21.6720525Z             {
2026-06-19T05:17:21.6720651Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6720740Z               "line": 246
2026-06-19T05:17:21.6720816Z             },
2026-06-19T05:17:21.6720903Z             {
2026-06-19T05:17:21.6721022Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6721112Z               "line": 279
2026-06-19T05:17:21.6721201Z             },
2026-06-19T05:17:21.6721278Z             {
2026-06-19T05:17:21.6721400Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6721590Z               "line": 319
2026-06-19T05:17:21.6721687Z             },
2026-06-19T05:17:21.6721762Z             {
2026-06-19T05:17:21.6721872Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6721958Z               "line": 598
2026-06-19T05:17:21.6722039Z             },
2026-06-19T05:17:21.6722119Z             {
2026-06-19T05:17:21.6722225Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6722410Z               "line": 671
2026-06-19T05:17:21.6722496Z             },
2026-06-19T05:17:21.6722564Z             {
2026-06-19T05:17:21.6722678Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6722763Z               "line": 815
2026-06-19T05:17:21.6722845Z             },
2026-06-19T05:17:21.6722921Z             {
2026-06-19T05:17:21.6723030Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.6723125Z               "line": 595
2026-06-19T05:17:21.6723203Z             },
2026-06-19T05:17:21.6723288Z             {
2026-06-19T05:17:21.6723407Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:17:21.6723499Z               "line": 399
2026-06-19T05:17:21.6723584Z             },
2026-06-19T05:17:21.6723669Z             {
2026-06-19T05:17:21.6723765Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6723852Z               "line": 8781
2026-06-19T05:17:21.6723941Z             },
2026-06-19T05:17:21.6724031Z             {
2026-06-19T05:17:21.6724126Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6724208Z               "line": 9105
2026-06-19T05:17:21.6724293Z             },
2026-06-19T05:17:21.6724373Z             {
2026-06-19T05:17:21.6724475Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6724570Z               "line": 9522
2026-06-19T05:17:21.6724650Z             }
2026-06-19T05:17:21.6724731Z           ]
2026-06-19T05:17:21.6724809Z         }
2026-06-19T05:17:21.6724894Z       }
2026-06-19T05:17:21.6724984Z     },
2026-06-19T05:17:21.6725056Z     {
2026-06-19T05:17:21.6725147Z       "id": "REQ-SHELL-2",
2026-06-19T05:17:21.6726597Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-19T05:17:21.6726707Z       "requiredStages": [
2026-06-19T05:17:21.6726803Z         "impl",
2026-06-19T05:17:21.6726888Z         "unit",
2026-06-19T05:17:21.6726974Z         "int"
2026-06-19T05:17:21.6727055Z       ],
2026-06-19T05:17:21.6727146Z       "stages": {
2026-06-19T05:17:21.6727231Z         "doc": {
2026-06-19T05:17:21.6727327Z           "complete": false,
2026-06-19T05:17:21.6727423Z           "evidence": []
2026-06-19T05:17:21.6727504Z         },
2026-06-19T05:17:21.6727589Z         "impl": {
2026-06-19T05:17:21.6727671Z           "complete": true,
2026-06-19T05:17:21.6727766Z           "evidence": [
2026-06-19T05:17:21.6727847Z             {
2026-06-19T05:17:21.6727966Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.6728053Z               "line": 217
2026-06-19T05:17:21.6728133Z             },
2026-06-19T05:17:21.6728223Z             {
2026-06-19T05:17:21.6728339Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6728428Z               "line": 403
2026-06-19T05:17:21.6728505Z             },
2026-06-19T05:17:21.6728581Z             {
2026-06-19T05:17:21.6728706Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:17:21.6728790Z               "line": 250
2026-06-19T05:17:21.6728872Z             },
2026-06-19T05:17:21.6729007Z             {
2026-06-19T05:17:21.6729133Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.6729831Z               "line": 403
2026-06-19T05:17:21.6729947Z             },
2026-06-19T05:17:21.6730052Z             {
2026-06-19T05:17:21.6730214Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6730332Z               "line": 30
2026-06-19T05:17:21.6730432Z             },
2026-06-19T05:17:21.6730533Z             {
2026-06-19T05:17:21.6730700Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6731000Z               "line": 409
2026-06-19T05:17:21.6731100Z             },
2026-06-19T05:17:21.6731196Z             {
2026-06-19T05:17:21.6731352Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6731444Z               "line": 445
2026-06-19T05:17:21.6731550Z             },
2026-06-19T05:17:21.6731652Z             {
2026-06-19T05:17:21.6731795Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6731895Z               "line": 660
2026-06-19T05:17:21.6731993Z             },
2026-06-19T05:17:21.6732092Z             {
2026-06-19T05:17:21.6732232Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.6732341Z               "line": 348
2026-06-19T05:17:21.6732441Z             },
2026-06-19T05:17:21.6732532Z             {
2026-06-19T05:17:21.6732684Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6732785Z               "line": 115
2026-06-19T05:17:21.6732885Z             },
2026-06-19T05:17:21.6732989Z             {
2026-06-19T05:17:21.6733124Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6733233Z               "line": 120
2026-06-19T05:17:21.6733328Z             },
2026-06-19T05:17:21.6733424Z             {
2026-06-19T05:17:21.6733557Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6733667Z               "line": 373
2026-06-19T05:17:21.6733763Z             },
2026-06-19T05:17:21.6733857Z             {
2026-06-19T05:17:21.6734000Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6734102Z               "line": 499
2026-06-19T05:17:21.6734205Z             },
2026-06-19T05:17:21.6734287Z             {
2026-06-19T05:17:21.6734431Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6734543Z               "line": 24
2026-06-19T05:17:21.6734643Z             },
2026-06-19T05:17:21.6734739Z             {
2026-06-19T05:17:21.6734872Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6734977Z               "line": 76
2026-06-19T05:17:21.6735073Z             },
2026-06-19T05:17:21.6735173Z             {
2026-06-19T05:17:21.6735311Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6735412Z               "line": 154
2026-06-19T05:17:21.6735521Z             },
2026-06-19T05:17:21.6735616Z             {
2026-06-19T05:17:21.6735740Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6735854Z               "line": 177
2026-06-19T05:17:21.6735960Z             },
2026-06-19T05:17:21.6736060Z             {
2026-06-19T05:17:21.6736203Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6736294Z               "line": 273
2026-06-19T05:17:21.6736389Z             },
2026-06-19T05:17:21.6736493Z             {
2026-06-19T05:17:21.6736628Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6736732Z               "line": 456
2026-06-19T05:17:21.6736840Z             },
2026-06-19T05:17:21.6736931Z             {
2026-06-19T05:17:21.6737063Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6737167Z               "line": 538
2026-06-19T05:17:21.6737272Z             },
2026-06-19T05:17:21.6737368Z             {
2026-06-19T05:17:21.6737524Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-19T05:17:21.6737630Z               "line": 27
2026-06-19T05:17:21.6737730Z             },
2026-06-19T05:17:21.6737921Z             {
2026-06-19T05:17:21.6738054Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-19T05:17:21.6738158Z               "line": 48
2026-06-19T05:17:21.6738250Z             },
2026-06-19T05:17:21.6738340Z             {
2026-06-19T05:17:21.6738473Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6738584Z               "line": 513
2026-06-19T05:17:21.6738683Z             },
2026-06-19T05:17:21.6738783Z             {
2026-06-19T05:17:21.6738913Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6739228Z               "line": 1814
2026-06-19T05:17:21.6739327Z             },
2026-06-19T05:17:21.6739427Z             {
2026-06-19T05:17:21.6739552Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6739651Z               "line": 6191
2026-06-19T05:17:21.6739745Z             },
2026-06-19T05:17:21.6739850Z             {
2026-06-19T05:17:21.6739977Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6740082Z               "line": 6252
2026-06-19T05:17:21.6740187Z             },
2026-06-19T05:17:21.6740274Z             {
2026-06-19T05:17:21.6740406Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6740512Z               "line": 6280
2026-06-19T05:17:21.6740603Z             },
2026-06-19T05:17:21.6740706Z             {
2026-06-19T05:17:21.6740817Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6740922Z               "line": 6334
2026-06-19T05:17:21.6741021Z             },
2026-06-19T05:17:21.6741122Z             {
2026-06-19T05:17:21.6741235Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6741350Z               "line": 6589
2026-06-19T05:17:21.6741451Z             },
2026-06-19T05:17:21.6741541Z             {
2026-06-19T05:17:21.6741665Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6741766Z               "line": 6649
2026-06-19T05:17:21.6741870Z             },
2026-06-19T05:17:21.6741965Z             {
2026-06-19T05:17:21.6742091Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6742203Z               "line": 298
2026-06-19T05:17:21.6742298Z             },
2026-06-19T05:17:21.6742393Z             {
2026-06-19T05:17:21.6742516Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6742620Z               "line": 339
2026-06-19T05:17:21.6742710Z             }
2026-06-19T05:17:21.6742802Z           ]
2026-06-19T05:17:21.6742906Z         },
2026-06-19T05:17:21.6743006Z         "int": {
2026-06-19T05:17:21.6743116Z           "complete": true,
2026-06-19T05:17:21.6743206Z           "evidence": [
2026-06-19T05:17:21.6743311Z             {
2026-06-19T05:17:21.6743455Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6743564Z               "line": 704
2026-06-19T05:17:21.6743675Z             },
2026-06-19T05:17:21.6743783Z             {
2026-06-19T05:17:21.6743936Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6744037Z               "line": 777
2026-06-19T05:17:21.6744142Z             },
2026-06-19T05:17:21.6744237Z             {
2026-06-19T05:17:21.6744380Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6744480Z               "line": 1212
2026-06-19T05:17:21.6744575Z             },
2026-06-19T05:17:21.6744677Z             {
2026-06-19T05:17:21.6744799Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-19T05:17:21.6744885Z               "line": 18
2026-06-19T05:17:21.6744967Z             }
2026-06-19T05:17:21.6745056Z           ]
2026-06-19T05:17:21.6745142Z         },
2026-06-19T05:17:21.6745222Z         "unit": {
2026-06-19T05:17:21.6745318Z           "complete": true,
2026-06-19T05:17:21.6745399Z           "evidence": [
2026-06-19T05:17:21.6745485Z             {
2026-06-19T05:17:21.6745599Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6745685Z               "line": 744
2026-06-19T05:17:21.6745770Z             },
2026-06-19T05:17:21.6745846Z             {
2026-06-19T05:17:21.6746071Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:17:21.6746157Z               "line": 796
2026-06-19T05:17:21.6746239Z             },
2026-06-19T05:17:21.6746319Z             {
2026-06-19T05:17:21.6746419Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6746505Z               "line": 704
2026-06-19T05:17:21.6746578Z             },
2026-06-19T05:17:21.6746662Z             {
2026-06-19T05:17:21.6746782Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6746954Z               "line": 753
2026-06-19T05:17:21.6747039Z             },
2026-06-19T05:17:21.6747120Z             {
2026-06-19T05:17:21.6747236Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6747315Z               "line": 777
2026-06-19T05:17:21.6747400Z             },
2026-06-19T05:17:21.6747472Z             {
2026-06-19T05:17:21.6747591Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6747685Z               "line": 603
2026-06-19T05:17:21.6747765Z             },
2026-06-19T05:17:21.6747842Z             {
2026-06-19T05:17:21.6747948Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6748037Z               "line": 624
2026-06-19T05:17:21.6748113Z             },
2026-06-19T05:17:21.6748195Z             {
2026-06-19T05:17:21.6748309Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6748389Z               "line": 660
2026-06-19T05:17:21.6748482Z             },
2026-06-19T05:17:21.6748562Z             {
2026-06-19T05:17:21.6748666Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6748748Z               "line": 714
2026-06-19T05:17:21.6748824Z             },
2026-06-19T05:17:21.6748905Z             {
2026-06-19T05:17:21.6749101Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6749187Z               "line": 732
2026-06-19T05:17:21.6749272Z             },
2026-06-19T05:17:21.6749362Z             {
2026-06-19T05:17:21.6749478Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6749558Z               "line": 766
2026-06-19T05:17:21.6749644Z             },
2026-06-19T05:17:21.6749711Z             {
2026-06-19T05:17:21.6749826Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:17:21.6749911Z               "line": 841
2026-06-19T05:17:21.6749992Z             },
2026-06-19T05:17:21.6750060Z             {
2026-06-19T05:17:21.6750188Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-19T05:17:21.6750272Z               "line": 85
2026-06-19T05:17:21.6750353Z             },
2026-06-19T05:17:21.6750434Z             {
2026-06-19T05:17:21.6750533Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6750622Z               "line": 7901
2026-06-19T05:17:21.6750699Z             },
2026-06-19T05:17:21.6750781Z             {
2026-06-19T05:17:21.6750876Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6750966Z               "line": 8859
2026-06-19T05:17:21.6751043Z             },
2026-06-19T05:17:21.6751124Z             {
2026-06-19T05:17:21.6751224Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6751305Z               "line": 8929
2026-06-19T05:17:21.6751382Z             },
2026-06-19T05:17:21.6751467Z             {
2026-06-19T05:17:21.6751557Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6751638Z               "line": 8967
2026-06-19T05:17:21.6751716Z             }
2026-06-19T05:17:21.6751800Z           ]
2026-06-19T05:17:21.6751886Z         }
2026-06-19T05:17:21.6751968Z       }
2026-06-19T05:17:21.6752054Z     },
2026-06-19T05:17:21.6752134Z     {
2026-06-19T05:17:21.6752235Z       "id": "REQ-SHELL-3",
2026-06-19T05:17:21.6754063Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-19T05:17:21.6754268Z       "requiredStages": [
2026-06-19T05:17:21.6754353Z         "impl",
2026-06-19T05:17:21.6754530Z         "unit",
2026-06-19T05:17:21.6754616Z         "int"
2026-06-19T05:17:21.6754682Z       ],
2026-06-19T05:17:21.6754763Z       "stages": {
2026-06-19T05:17:21.6754845Z         "doc": {
2026-06-19T05:17:21.6754927Z           "complete": false,
2026-06-19T05:17:21.6755015Z           "evidence": []
2026-06-19T05:17:21.6755097Z         },
2026-06-19T05:17:21.6755179Z         "impl": {
2026-06-19T05:17:21.6755265Z           "complete": true,
2026-06-19T05:17:21.6755349Z           "evidence": [
2026-06-19T05:17:21.6755446Z             {
2026-06-19T05:17:21.6755561Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.6755645Z               "line": 224
2026-06-19T05:17:21.6755721Z             },
2026-06-19T05:17:21.6755797Z             {
2026-06-19T05:17:21.6755912Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6756007Z               "line": 36
2026-06-19T05:17:21.6756092Z             },
2026-06-19T05:17:21.6756174Z             {
2026-06-19T05:17:21.6756298Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6756383Z               "line": 137
2026-06-19T05:17:21.6756465Z             },
2026-06-19T05:17:21.6756536Z             {
2026-06-19T05:17:21.6756650Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6756736Z               "line": 153
2026-06-19T05:17:21.6756809Z             },
2026-06-19T05:17:21.6756894Z             {
2026-06-19T05:17:21.6756993Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6757094Z               "line": 165
2026-06-19T05:17:21.6757180Z             },
2026-06-19T05:17:21.6757251Z             {
2026-06-19T05:17:21.6757361Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6757443Z               "line": 242
2026-06-19T05:17:21.6757523Z             },
2026-06-19T05:17:21.6760572Z             {
2026-06-19T05:17:21.6760738Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6760842Z               "line": 267
2026-06-19T05:17:21.6760928Z             },
2026-06-19T05:17:21.6761013Z             {
2026-06-19T05:17:21.6761131Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6761226Z               "line": 293
2026-06-19T05:17:21.6761307Z             },
2026-06-19T05:17:21.6761394Z             {
2026-06-19T05:17:21.6761502Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:17:21.6761584Z               "line": 51
2026-06-19T05:17:21.6761666Z             },
2026-06-19T05:17:21.6761746Z             {
2026-06-19T05:17:21.6761850Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6761937Z               "line": 333
2026-06-19T05:17:21.6762018Z             },
2026-06-19T05:17:21.6762103Z             {
2026-06-19T05:17:21.6762218Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6762304Z               "line": 373
2026-06-19T05:17:21.6762385Z             },
2026-06-19T05:17:21.6762460Z             {
2026-06-19T05:17:21.6762581Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6762671Z               "line": 602
2026-06-19T05:17:21.6762752Z             },
2026-06-19T05:17:21.6762833Z             {
2026-06-19T05:17:21.6762958Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6763042Z               "line": 132
2026-06-19T05:17:21.6763124Z             },
2026-06-19T05:17:21.6763192Z             {
2026-06-19T05:17:21.6763315Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6763528Z               "line": 447
2026-06-19T05:17:21.6763613Z             },
2026-06-19T05:17:21.6763707Z             {
2026-06-19T05:17:21.6763822Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:17:21.6763899Z               "line": 74
2026-06-19T05:17:21.6763984Z             },
2026-06-19T05:17:21.6764054Z             {
2026-06-19T05:17:21.6764175Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6764346Z               "line": 561
2026-06-19T05:17:21.6764431Z             },
2026-06-19T05:17:21.6764509Z             {
2026-06-19T05:17:21.6764628Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6764717Z               "line": 392
2026-06-19T05:17:21.6764795Z             },
2026-06-19T05:17:21.6764880Z             {
2026-06-19T05:17:21.6764985Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6765075Z               "line": 6375
2026-06-19T05:17:21.6765153Z             }
2026-06-19T05:17:21.6765237Z           ]
2026-06-19T05:17:21.6765318Z         },
2026-06-19T05:17:21.6765400Z         "int": {
2026-06-19T05:17:21.6765496Z           "complete": true,
2026-06-19T05:17:21.6765571Z           "evidence": [
2026-06-19T05:17:21.6765647Z             {
2026-06-19T05:17:21.6765763Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6765844Z               "line": 1261
2026-06-19T05:17:21.6765929Z             },
2026-06-19T05:17:21.6766011Z             {
2026-06-19T05:17:21.6766121Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-19T05:17:21.6766196Z               "line": 17
2026-06-19T05:17:21.6766281Z             }
2026-06-19T05:17:21.6766367Z           ]
2026-06-19T05:17:21.6766444Z         },
2026-06-19T05:17:21.6766525Z         "unit": {
2026-06-19T05:17:21.6766619Z           "complete": true,
2026-06-19T05:17:21.6766710Z           "evidence": [
2026-06-19T05:17:21.6766791Z             {
2026-06-19T05:17:21.6766914Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6767001Z               "line": 311
2026-06-19T05:17:21.6767092Z             },
2026-06-19T05:17:21.6767178Z             {
2026-06-19T05:17:21.6767287Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6767378Z               "line": 325
2026-06-19T05:17:21.6767459Z             },
2026-06-19T05:17:21.6767539Z             {
2026-06-19T05:17:21.6767640Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6767731Z               "line": 343
2026-06-19T05:17:21.6767816Z             },
2026-06-19T05:17:21.6767897Z             {
2026-06-19T05:17:21.6767998Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6768083Z               "line": 364
2026-06-19T05:17:21.6768169Z             },
2026-06-19T05:17:21.6768245Z             {
2026-06-19T05:17:21.6768366Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:17:21.6768454Z               "line": 376
2026-06-19T05:17:21.6768540Z             },
2026-06-19T05:17:21.6768616Z             {
2026-06-19T05:17:21.6768729Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6768814Z               "line": 897
2026-06-19T05:17:21.6768894Z             },
2026-06-19T05:17:21.6769054Z             {
2026-06-19T05:17:21.6769167Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6769248Z               "line": 957
2026-06-19T05:17:21.6769806Z             },
2026-06-19T05:17:21.6769917Z             {
2026-06-19T05:17:21.6770092Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:17:21.6770202Z               "line": 338
2026-06-19T05:17:21.6770302Z             },
2026-06-19T05:17:21.6770402Z             {
2026-06-19T05:17:21.6770541Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6770645Z               "line": 769
2026-06-19T05:17:21.6770741Z             },
2026-06-19T05:17:21.6770837Z             {
2026-06-19T05:17:21.6771185Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6771298Z               "line": 8641
2026-06-19T05:17:21.6771383Z             }
2026-06-19T05:17:21.6771469Z           ]
2026-06-19T05:17:21.6771559Z         }
2026-06-19T05:17:21.6771648Z       }
2026-06-19T05:17:21.6771747Z     },
2026-06-19T05:17:21.6771834Z     {
2026-06-19T05:17:21.6771939Z       "id": "REQ-SHELL-4",
2026-06-19T05:17:21.6774168Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-19T05:17:21.6774406Z       "requiredStages": [
2026-06-19T05:17:21.6774502Z         "doc",
2026-06-19T05:17:21.6774600Z         "impl",
2026-06-19T05:17:21.6774696Z         "unit",
2026-06-19T05:17:21.6774783Z         "int"
2026-06-19T05:17:21.6774878Z       ],
2026-06-19T05:17:21.6774987Z       "stages": {
2026-06-19T05:17:21.6775078Z         "doc": {
2026-06-19T05:17:21.6775183Z           "complete": true,
2026-06-19T05:17:21.6775282Z           "evidence": [
2026-06-19T05:17:21.6775388Z             {
2026-06-19T05:17:21.6775502Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6775597Z               "line": 281
2026-06-19T05:17:21.6775698Z             },
2026-06-19T05:17:21.6775788Z             {
2026-06-19T05:17:21.6776065Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-19T05:17:21.6776175Z               "line": 88
2026-06-19T05:17:21.6776265Z             }
2026-06-19T05:17:21.6776362Z           ]
2026-06-19T05:17:21.6776455Z         },
2026-06-19T05:17:21.6776556Z         "impl": {
2026-06-19T05:17:21.6776662Z           "complete": true,
2026-06-19T05:17:21.6776765Z           "evidence": [
2026-06-19T05:17:21.6776864Z             {
2026-06-19T05:17:21.6776999Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.6777108Z               "line": 238
2026-06-19T05:17:21.6777189Z             },
2026-06-19T05:17:21.6777289Z             {
2026-06-19T05:17:21.6777437Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:17:21.6777546Z               "line": 61
2026-06-19T05:17:21.6777643Z             },
2026-06-19T05:17:21.6777738Z             {
2026-06-19T05:17:21.6777876Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6777972Z               "line": 218
2026-06-19T05:17:21.6778057Z             },
2026-06-19T05:17:21.6778157Z             {
2026-06-19T05:17:21.6778287Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6778391Z               "line": 245
2026-06-19T05:17:21.6778481Z             },
2026-06-19T05:17:21.6778582Z             {
2026-06-19T05:17:21.6778724Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6778829Z               "line": 566
2026-06-19T05:17:21.6778926Z             },
2026-06-19T05:17:21.6779123Z             {
2026-06-19T05:17:21.6779258Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6779379Z               "line": 1141
2026-06-19T05:17:21.6779474Z             },
2026-06-19T05:17:21.6779566Z             {
2026-06-19T05:17:21.6779703Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6779808Z               "line": 1153
2026-06-19T05:17:21.6779894Z             },
2026-06-19T05:17:21.6779999Z             {
2026-06-19T05:17:21.6780133Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6780237Z               "line": 1194
2026-06-19T05:17:21.6780332Z             },
2026-06-19T05:17:21.6780547Z             {
2026-06-19T05:17:21.6780699Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6780796Z               "line": 455
2026-06-19T05:17:21.6780895Z             },
2026-06-19T05:17:21.6780990Z             {
2026-06-19T05:17:21.6781130Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6781229Z               "line": 44
2026-06-19T05:17:21.6781334Z             },
2026-06-19T05:17:21.6781430Z             {
2026-06-19T05:17:21.6781572Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6781779Z               "line": 208
2026-06-19T05:17:21.6781872Z             },
2026-06-19T05:17:21.6781962Z             {
2026-06-19T05:17:21.6782101Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6782203Z               "line": 227
2026-06-19T05:17:21.6782303Z             },
2026-06-19T05:17:21.6782384Z             {
2026-06-19T05:17:21.6782518Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6782627Z               "line": 253
2026-06-19T05:17:21.6782724Z             },
2026-06-19T05:17:21.6782819Z             {
2026-06-19T05:17:21.6782947Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6783053Z               "line": 272
2026-06-19T05:17:21.6783129Z             },
2026-06-19T05:17:21.6783233Z             {
2026-06-19T05:17:21.6783363Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6783462Z               "line": 392
2026-06-19T05:17:21.6783572Z             },
2026-06-19T05:17:21.6783658Z             {
2026-06-19T05:17:21.6783791Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6783891Z               "line": 421
2026-06-19T05:17:21.6783988Z             },
2026-06-19T05:17:21.6784087Z             {
2026-06-19T05:17:21.6784220Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6784327Z               "line": 439
2026-06-19T05:17:21.6784411Z             },
2026-06-19T05:17:21.6784515Z             {
2026-06-19T05:17:21.6784639Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6784747Z               "line": 458
2026-06-19T05:17:21.6784827Z             },
2026-06-19T05:17:21.6784903Z             {
2026-06-19T05:17:21.6785024Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6785099Z               "line": 486
2026-06-19T05:17:21.6785184Z             },
2026-06-19T05:17:21.6785261Z             {
2026-06-19T05:17:21.6785385Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6785466Z               "line": 580
2026-06-19T05:17:21.6785552Z             },
2026-06-19T05:17:21.6785629Z             {
2026-06-19T05:17:21.6785733Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6785818Z               "line": 785
2026-06-19T05:17:21.6785901Z             },
2026-06-19T05:17:21.6785986Z             {
2026-06-19T05:17:21.6786100Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6786196Z               "line": 431
2026-06-19T05:17:21.6786278Z             },
2026-06-19T05:17:21.6786358Z             {
2026-06-19T05:17:21.6786467Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6786545Z               "line": 6431
2026-06-19T05:17:21.6786630Z             }
2026-06-19T05:17:21.6786710Z           ]
2026-06-19T05:17:21.6786791Z         },
2026-06-19T05:17:21.6786879Z         "int": {
2026-06-19T05:17:21.6786959Z           "complete": true,
2026-06-19T05:17:21.6787049Z           "evidence": [
2026-06-19T05:17:21.6787131Z             {
2026-06-19T05:17:21.6787251Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-19T05:17:21.6787330Z               "line": 18
2026-06-19T05:17:21.6787410Z             }
2026-06-19T05:17:21.6787491Z           ]
2026-06-19T05:17:21.6787569Z         },
2026-06-19T05:17:21.6787654Z         "unit": {
2026-06-19T05:17:21.6787744Z           "complete": true,
2026-06-19T05:17:21.6787917Z           "evidence": [
2026-06-19T05:17:21.6787993Z             {
2026-06-19T05:17:21.6788111Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6788203Z               "line": 1391
2026-06-19T05:17:21.6788279Z             },
2026-06-19T05:17:21.6788359Z             {
2026-06-19T05:17:21.6788475Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6788556Z               "line": 1420
2026-06-19T05:17:21.6788641Z             },
2026-06-19T05:17:21.6788794Z             {
2026-06-19T05:17:21.6788912Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6789070Z               "line": 504
2026-06-19T05:17:21.6789152Z             },
2026-06-19T05:17:21.6789232Z             {
2026-06-19T05:17:21.6789361Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6789443Z               "line": 514
2026-06-19T05:17:21.6789519Z             },
2026-06-19T05:17:21.6789603Z             {
2026-06-19T05:17:21.6789707Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6789803Z               "line": 531
2026-06-19T05:17:21.6789883Z             },
2026-06-19T05:17:21.6789963Z             {
2026-06-19T05:17:21.6790082Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6790164Z               "line": 543
2026-06-19T05:17:21.6790244Z             },
2026-06-19T05:17:21.6790325Z             {
2026-06-19T05:17:21.6790431Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:17:21.6790517Z               "line": 555
2026-06-19T05:17:21.6790592Z             },
2026-06-19T05:17:21.6790673Z             {
2026-06-19T05:17:21.6790784Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.6790869Z               "line": 1086
2026-06-19T05:17:21.6790945Z             },
2026-06-19T05:17:21.6791027Z             {
2026-06-19T05:17:21.6791122Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6791217Z               "line": 776
2026-06-19T05:17:21.6791298Z             }
2026-06-19T05:17:21.6791380Z           ]
2026-06-19T05:17:21.6791460Z         }
2026-06-19T05:17:21.6791541Z       }
2026-06-19T05:17:21.6791622Z     },
2026-06-19T05:17:21.6791700Z     {
2026-06-19T05:17:21.6791784Z       "id": "REQ-SHELL-5",
2026-06-19T05:17:21.6792944Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-19T05:17:21.6793045Z       "requiredStages": [
2026-06-19T05:17:21.6793130Z         "doc",
2026-06-19T05:17:21.6793206Z         "impl",
2026-06-19T05:17:21.6793294Z         "unit",
2026-06-19T05:17:21.6793369Z         "int"
2026-06-19T05:17:21.6793445Z       ],
2026-06-19T05:17:21.6793530Z       "stages": {
2026-06-19T05:17:21.6793608Z         "doc": {
2026-06-19T05:17:21.6793693Z           "complete": true,
2026-06-19T05:17:21.6793778Z           "evidence": [
2026-06-19T05:17:21.6793865Z             {
2026-06-19T05:17:21.6793966Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6794051Z               "line": 284
2026-06-19T05:17:21.6794132Z             }
2026-06-19T05:17:21.6794209Z           ]
2026-06-19T05:17:21.6794285Z         },
2026-06-19T05:17:21.6794365Z         "impl": {
2026-06-19T05:17:21.6794456Z           "complete": true,
2026-06-19T05:17:21.6794538Z           "evidence": [
2026-06-19T05:17:21.6794614Z             {
2026-06-19T05:17:21.6794732Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:17:21.6794814Z               "line": 259
2026-06-19T05:17:21.6794892Z             }
2026-06-19T05:17:21.6794967Z           ]
2026-06-19T05:17:21.6795051Z         },
2026-06-19T05:17:21.6795136Z         "int": {
2026-06-19T05:17:21.6795223Z           "complete": true,
2026-06-19T05:17:21.6795439Z           "evidence": [
2026-06-19T05:17:21.6795521Z             {
2026-06-19T05:17:21.6795631Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6795707Z               "line": 826
2026-06-19T05:17:21.6795788Z             },
2026-06-19T05:17:21.6795874Z             {
2026-06-19T05:17:21.6795988Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6796064Z               "line": 1289
2026-06-19T05:17:21.6796236Z             },
2026-06-19T05:17:21.6796322Z             {
2026-06-19T05:17:21.6796461Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-19T05:17:21.6796546Z               "line": 23
2026-06-19T05:17:21.6796637Z             }
2026-06-19T05:17:21.6796722Z           ]
2026-06-19T05:17:21.6796800Z         },
2026-06-19T05:17:21.6796880Z         "unit": {
2026-06-19T05:17:21.6796971Z           "complete": true,
2026-06-19T05:17:21.6797061Z           "evidence": [
2026-06-19T05:17:21.6797148Z             {
2026-06-19T05:17:21.6797266Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:17:21.6797352Z               "line": 803
2026-06-19T05:17:21.6797434Z             }
2026-06-19T05:17:21.6797514Z           ]
2026-06-19T05:17:21.6797590Z         }
2026-06-19T05:17:21.6797666Z       }
2026-06-19T05:17:21.6797754Z     },
2026-06-19T05:17:21.6797834Z     {
2026-06-19T05:17:21.6797923Z       "id": "REQ-START-1",
2026-06-19T05:17:21.6798109Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-19T05:17:21.6798200Z       "requiredStages": [
2026-06-19T05:17:21.6798289Z         "impl",
2026-06-19T05:17:21.6798361Z         "unit"
2026-06-19T05:17:21.6798444Z       ],
2026-06-19T05:17:21.6798529Z       "stages": {
2026-06-19T05:17:21.6798604Z         "doc": {
2026-06-19T05:17:21.6798701Z           "complete": false,
2026-06-19T05:17:21.6798782Z           "evidence": []
2026-06-19T05:17:21.6798863Z         },
2026-06-19T05:17:21.6799025Z         "impl": {
2026-06-19T05:17:21.6799106Z           "complete": true,
2026-06-19T05:17:21.6799197Z           "evidence": [
2026-06-19T05:17:21.6799277Z             {
2026-06-19T05:17:21.6799407Z               "path": "crates/spt-store/src/seed.rs",
2026-06-19T05:17:21.6799491Z               "line": 16
2026-06-19T05:17:21.6799577Z             }
2026-06-19T05:17:21.6799660Z           ]
2026-06-19T05:17:21.6799740Z         },
2026-06-19T05:17:21.6799825Z         "int": {
2026-06-19T05:17:21.6799911Z           "complete": false,
2026-06-19T05:17:21.6799994Z           "evidence": []
2026-06-19T05:17:21.6800069Z         },
2026-06-19T05:17:21.6800144Z         "unit": {
2026-06-19T05:17:21.6800225Z           "complete": true,
2026-06-19T05:17:21.6800311Z           "evidence": [
2026-06-19T05:17:21.6800396Z             {
2026-06-19T05:17:21.6800499Z               "path": "crates/spt-store/src/seed.rs",
2026-06-19T05:17:21.6800575Z               "line": 48
2026-06-19T05:17:21.6800652Z             },
2026-06-19T05:17:21.6800734Z             {
2026-06-19T05:17:21.6800837Z               "path": "crates/spt-store/src/seed.rs",
2026-06-19T05:17:21.6800919Z               "line": 63
2026-06-19T05:17:21.6801001Z             }
2026-06-19T05:17:21.6801077Z           ]
2026-06-19T05:17:21.6801161Z         }
2026-06-19T05:17:21.6801233Z       }
2026-06-19T05:17:21.6801320Z     },
2026-06-19T05:17:21.6801396Z     {
2026-06-19T05:17:21.6801486Z       "id": "REQ-START-2",
2026-06-19T05:17:21.6801630Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-19T05:17:21.6801730Z       "requiredStages": [
2026-06-19T05:17:21.6801815Z         "impl",
2026-06-19T05:17:21.6801892Z         "unit",
2026-06-19T05:17:21.6801978Z         "int"
2026-06-19T05:17:21.6802049Z       ],
2026-06-19T05:17:21.6802134Z       "stages": {
2026-06-19T05:17:21.6802222Z         "doc": {
2026-06-19T05:17:21.6802307Z           "complete": false,
2026-06-19T05:17:21.6802402Z           "evidence": []
2026-06-19T05:17:21.6802483Z         },
2026-06-19T05:17:21.6802669Z         "impl": {
2026-06-19T05:17:21.6802750Z           "complete": true,
2026-06-19T05:17:21.6802832Z           "evidence": [
2026-06-19T05:17:21.6802923Z             {
2026-06-19T05:17:21.6803026Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6803111Z               "line": 16
2026-06-19T05:17:21.6803192Z             },
2026-06-19T05:17:21.6803273Z             {
2026-06-19T05:17:21.6803385Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6803577Z               "line": 115
2026-06-19T05:17:21.6803653Z             },
2026-06-19T05:17:21.6803733Z             {
2026-06-19T05:17:21.6803839Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6803920Z               "line": 276
2026-06-19T05:17:21.6803996Z             }
2026-06-19T05:17:21.6804067Z           ]
2026-06-19T05:17:21.6804149Z         },
2026-06-19T05:17:21.6804230Z         "int": {
2026-06-19T05:17:21.6804320Z           "complete": true,
2026-06-19T05:17:21.6804415Z           "evidence": [
2026-06-19T05:17:21.6804493Z             {
2026-06-19T05:17:21.6804611Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.6804701Z               "line": 186
2026-06-19T05:17:21.6804774Z             }
2026-06-19T05:17:21.6804850Z           ]
2026-06-19T05:17:21.6804921Z         },
2026-06-19T05:17:21.6805006Z         "unit": {
2026-06-19T05:17:21.6805094Z           "complete": true,
2026-06-19T05:17:21.6805175Z           "evidence": [
2026-06-19T05:17:21.6805264Z             {
2026-06-19T05:17:21.6805374Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6805456Z               "line": 559
2026-06-19T05:17:21.6805536Z             },
2026-06-19T05:17:21.6805621Z             {
2026-06-19T05:17:21.6805726Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6805816Z               "line": 592
2026-06-19T05:17:21.6805895Z             }
2026-06-19T05:17:21.6805981Z           ]
2026-06-19T05:17:21.6806071Z         }
2026-06-19T05:17:21.6806153Z       }
2026-06-19T05:17:21.6806238Z     },
2026-06-19T05:17:21.6806314Z     {
2026-06-19T05:17:21.6806411Z       "id": "REQ-START-3",
2026-06-19T05:17:21.6806572Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-19T05:17:21.6806662Z       "requiredStages": [
2026-06-19T05:17:21.6806745Z         "impl",
2026-06-19T05:17:21.6806825Z         "unit",
2026-06-19T05:17:21.6806910Z         "int"
2026-06-19T05:17:21.6806987Z       ],
2026-06-19T05:17:21.6807078Z       "stages": {
2026-06-19T05:17:21.6807159Z         "doc": {
2026-06-19T05:17:21.6807249Z           "complete": false,
2026-06-19T05:17:21.6807335Z           "evidence": []
2026-06-19T05:17:21.6807407Z         },
2026-06-19T05:17:21.6807497Z         "impl": {
2026-06-19T05:17:21.6807578Z           "complete": true,
2026-06-19T05:17:21.6807670Z           "evidence": [
2026-06-19T05:17:21.6807745Z             {
2026-06-19T05:17:21.6807864Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.6807951Z               "line": 23
2026-06-19T05:17:21.6808032Z             },
2026-06-19T05:17:21.6808121Z             {
2026-06-19T05:17:21.6808232Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.6808309Z               "line": 205
2026-06-19T05:17:21.6808385Z             },
2026-06-19T05:17:21.6808469Z             {
2026-06-19T05:17:21.6808583Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.6808669Z               "line": 221
2026-06-19T05:17:21.6808756Z             },
2026-06-19T05:17:21.6808836Z             {
2026-06-19T05:17:21.6809037Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6809127Z               "line": 17
2026-06-19T05:17:21.6809217Z             },
2026-06-19T05:17:21.6809299Z             {
2026-06-19T05:17:21.6809404Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6809489Z               "line": 35
2026-06-19T05:17:21.6809566Z             },
2026-06-19T05:17:21.6809856Z             {
2026-06-19T05:17:21.6809962Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6810052Z               "line": 116
2026-06-19T05:17:21.6810133Z             }
2026-06-19T05:17:21.6810210Z           ]
2026-06-19T05:17:21.6810296Z         },
2026-06-19T05:17:21.6810376Z         "int": {
2026-06-19T05:17:21.6810466Z           "complete": true,
2026-06-19T05:17:21.6810554Z           "evidence": [
2026-06-19T05:17:21.6810629Z             {
2026-06-19T05:17:21.6810847Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:17:21.6810923Z               "line": 488
2026-06-19T05:17:21.6811008Z             }
2026-06-19T05:17:21.6811088Z           ]
2026-06-19T05:17:21.6811169Z         },
2026-06-19T05:17:21.6811246Z         "unit": {
2026-06-19T05:17:21.6811331Z           "complete": true,
2026-06-19T05:17:21.6811426Z           "evidence": [
2026-06-19T05:17:21.6811503Z             {
2026-06-19T05:17:21.6811613Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.6811694Z               "line": 381
2026-06-19T05:17:21.6811774Z             },
2026-06-19T05:17:21.6811852Z             {
2026-06-19T05:17:21.6811971Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.6812065Z               "line": 402
2026-06-19T05:17:21.6812148Z             },
2026-06-19T05:17:21.6812228Z             {
2026-06-19T05:17:21.6812333Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:17:21.6812433Z               "line": 412
2026-06-19T05:17:21.6812514Z             },
2026-06-19T05:17:21.6812590Z             {
2026-06-19T05:17:21.6812699Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6812782Z               "line": 560
2026-06-19T05:17:21.6812867Z             },
2026-06-19T05:17:21.6812942Z             {
2026-06-19T05:17:21.6813053Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6813144Z               "line": 593
2026-06-19T05:17:21.6813281Z             },
2026-06-19T05:17:21.6813368Z             {
2026-06-19T05:17:21.6813473Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6813558Z               "line": 626
2026-06-19T05:17:21.6813638Z             }
2026-06-19T05:17:21.6813719Z           ]
2026-06-19T05:17:21.6813800Z         }
2026-06-19T05:17:21.6813880Z       }
2026-06-19T05:17:21.6813950Z     },
2026-06-19T05:17:21.6814031Z     {
2026-06-19T05:17:21.6814128Z       "id": "REQ-START-4",
2026-06-19T05:17:21.6814260Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-19T05:17:21.6814355Z       "requiredStages": [
2026-06-19T05:17:21.6814433Z         "impl",
2026-06-19T05:17:21.6814514Z         "unit"
2026-06-19T05:17:21.6814593Z       ],
2026-06-19T05:17:21.6814675Z       "stages": {
2026-06-19T05:17:21.6814762Z         "doc": {
2026-06-19T05:17:21.6814843Z           "complete": false,
2026-06-19T05:17:21.6814937Z           "evidence": []
2026-06-19T05:17:21.6815009Z         },
2026-06-19T05:17:21.6815091Z         "impl": {
2026-06-19T05:17:21.6815176Z           "complete": true,
2026-06-19T05:17:21.6815261Z           "evidence": [
2026-06-19T05:17:21.6815348Z             {
2026-06-19T05:17:21.6815466Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6815552Z               "line": 581
2026-06-19T05:17:21.6815634Z             }
2026-06-19T05:17:21.6815711Z           ]
2026-06-19T05:17:21.6815795Z         },
2026-06-19T05:17:21.6815877Z         "int": {
2026-06-19T05:17:21.6815974Z           "complete": false,
2026-06-19T05:17:21.6816059Z           "evidence": []
2026-06-19T05:17:21.6816148Z         },
2026-06-19T05:17:21.6816233Z         "unit": {
2026-06-19T05:17:21.6816324Z           "complete": true,
2026-06-19T05:17:21.6816414Z           "evidence": [
2026-06-19T05:17:21.6816493Z             {
2026-06-19T05:17:21.6816608Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6816694Z               "line": 1022
2026-06-19T05:17:21.6816775Z             }
2026-06-19T05:17:21.6816932Z           ]
2026-06-19T05:17:21.6817013Z         }
2026-06-19T05:17:21.6817094Z       }
2026-06-19T05:17:21.6817175Z     },
2026-06-19T05:17:21.6817261Z     {
2026-06-19T05:17:21.6817342Z       "id": "REQ-START-5",
2026-06-19T05:17:21.6820170Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
2026-06-19T05:17:21.6820369Z       "requiredStages": [
2026-06-19T05:17:21.6820450Z         "doc",
2026-06-19T05:17:21.6820522Z         "impl",
2026-06-19T05:17:21.6820607Z         "unit",
2026-06-19T05:17:21.6820688Z         "int"
2026-06-19T05:17:21.6820770Z       ],
2026-06-19T05:17:21.6820851Z       "stages": {
2026-06-19T05:17:21.6820931Z         "doc": {
2026-06-19T05:17:21.6821017Z           "complete": true,
2026-06-19T05:17:21.6821104Z           "evidence": [
2026-06-19T05:17:21.6821189Z             {
2026-06-19T05:17:21.6821284Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.6821369Z               "line": 176
2026-06-19T05:17:21.6821441Z             },
2026-06-19T05:17:21.6821526Z             {
2026-06-19T05:17:21.6821657Z               "path": "docs-site/src/harness-contract/api.md",
2026-06-19T05:17:21.6821744Z               "line": 28
2026-06-19T05:17:21.6821830Z             }
2026-06-19T05:17:21.6821906Z           ]
2026-06-19T05:17:21.6821986Z         },
2026-06-19T05:17:21.6822068Z         "impl": {
2026-06-19T05:17:21.6822150Z           "complete": true,
2026-06-19T05:17:21.6822230Z           "evidence": [
2026-06-19T05:17:21.6822315Z             {
2026-06-19T05:17:21.6822440Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6822521Z               "line": 26
2026-06-19T05:17:21.6822597Z             },
2026-06-19T05:17:21.6822678Z             {
2026-06-19T05:17:21.6822798Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6822878Z               "line": 212
2026-06-19T05:17:21.6822959Z             },
2026-06-19T05:17:21.6823042Z             {
2026-06-19T05:17:21.6823146Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6823231Z               "line": 221
2026-06-19T05:17:21.6823308Z             },
2026-06-19T05:17:21.6823389Z             {
2026-06-19T05:17:21.6823493Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6823579Z               "line": 485
2026-06-19T05:17:21.6823657Z             },
2026-06-19T05:17:21.6823738Z             {
2026-06-19T05:17:21.6823851Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6823928Z               "line": 36
2026-06-19T05:17:21.6824010Z             },
2026-06-19T05:17:21.6824085Z             {
2026-06-19T05:17:21.6824198Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6824274Z               "line": 118
2026-06-19T05:17:21.6824350Z             },
2026-06-19T05:17:21.6824430Z             {
2026-06-19T05:17:21.6824529Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:17:21.6824620Z               "line": 305
2026-06-19T05:17:21.6824707Z             }
2026-06-19T05:17:21.6824778Z           ]
2026-06-19T05:17:21.6824858Z         },
2026-06-19T05:17:21.6824940Z         "int": {
2026-06-19T05:17:21.6825149Z           "complete": true,
2026-06-19T05:17:21.6825235Z           "evidence": [
2026-06-19T05:17:21.6825317Z             {
2026-06-19T05:17:21.6825441Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-19T05:17:21.6825521Z               "line": 17
2026-06-19T05:17:21.6825608Z             }
2026-06-19T05:17:21.6825689Z           ]
2026-06-19T05:17:21.6825770Z         },
2026-06-19T05:17:21.6825851Z         "unit": {
2026-06-19T05:17:21.6825942Z           "complete": true,
2026-06-19T05:17:21.6826117Z           "evidence": [
2026-06-19T05:17:21.6826199Z             {
2026-06-19T05:17:21.6826319Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6826403Z               "line": 358
2026-06-19T05:17:21.6826485Z             },
2026-06-19T05:17:21.6826567Z             {
2026-06-19T05:17:21.6826680Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:17:21.6826770Z               "line": 371
2026-06-19T05:17:21.6826860Z             },
2026-06-19T05:17:21.6826946Z             {
2026-06-19T05:17:21.6827048Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:17:21.6827138Z               "line": 597
2026-06-19T05:17:21.6827220Z             }
2026-06-19T05:17:21.6827298Z           ]
2026-06-19T05:17:21.6827382Z         }
2026-06-19T05:17:21.6827463Z       }
2026-06-19T05:17:21.6827550Z     },
2026-06-19T05:17:21.6827631Z     {
2026-06-19T05:17:21.6827716Z       "id": "REQ-STORE-1",
2026-06-19T05:17:21.6828551Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-19T05:17:21.6828632Z       "requiredStages": [
2026-06-19T05:17:21.6828713Z         "impl",
2026-06-19T05:17:21.6828795Z         "unit"
2026-06-19T05:17:21.6828880Z       ],
2026-06-19T05:17:21.6829061Z       "stages": {
2026-06-19T05:17:21.6829143Z         "doc": {
2026-06-19T05:17:21.6829241Z           "complete": false,
2026-06-19T05:17:21.6829323Z           "evidence": []
2026-06-19T05:17:21.6829415Z         },
2026-06-19T05:17:21.6829496Z         "impl": {
2026-06-19T05:17:21.6829589Z           "complete": true,
2026-06-19T05:17:21.6832580Z           "evidence": [
2026-06-19T05:17:21.6832691Z             {
2026-06-19T05:17:21.6832838Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6832943Z               "line": 23
2026-06-19T05:17:21.6833020Z             },
2026-06-19T05:17:21.6833100Z             {
2026-06-19T05:17:21.6833234Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6833315Z               "line": 46
2026-06-19T05:17:21.6833396Z             },
2026-06-19T05:17:21.6833476Z             {
2026-06-19T05:17:21.6833597Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6833682Z               "line": 97
2026-06-19T05:17:21.6833767Z             },
2026-06-19T05:17:21.6833848Z             {
2026-06-19T05:17:21.6833959Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6834044Z               "line": 125
2026-06-19T05:17:21.6834125Z             },
2026-06-19T05:17:21.6834202Z             {
2026-06-19T05:17:21.6834321Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6834406Z               "line": 207
2026-06-19T05:17:21.6834488Z             },
2026-06-19T05:17:21.6834575Z             {
2026-06-19T05:17:21.6834687Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6834777Z               "line": 231
2026-06-19T05:17:21.6834853Z             },
2026-06-19T05:17:21.6834925Z             {
2026-06-19T05:17:21.6835033Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6835118Z               "line": 467
2026-06-19T05:17:21.6835205Z             },
2026-06-19T05:17:21.6835413Z             {
2026-06-19T05:17:21.6835529Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6835605Z               "line": 25
2026-06-19T05:17:21.6835690Z             },
2026-06-19T05:17:21.6835771Z             {
2026-06-19T05:17:21.6835887Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6835977Z               "line": 120
2026-06-19T05:17:21.6836057Z             },
2026-06-19T05:17:21.6836139Z             {
2026-06-19T05:17:21.6836358Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6836449Z               "line": 148
2026-06-19T05:17:21.6836526Z             },
2026-06-19T05:17:21.6836615Z             {
2026-06-19T05:17:21.6836730Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6836812Z               "line": 165
2026-06-19T05:17:21.6836893Z             },
2026-06-19T05:17:21.6836968Z             {
2026-06-19T05:17:21.6837079Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6837174Z               "line": 180
2026-06-19T05:17:21.6837259Z             },
2026-06-19T05:17:21.6837339Z             {
2026-06-19T05:17:21.6837449Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6837534Z               "line": 198
2026-06-19T05:17:21.6837618Z             },
2026-06-19T05:17:21.6837743Z             {
2026-06-19T05:17:21.6837872Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6837951Z               "line": 207
2026-06-19T05:17:21.6838186Z             },
2026-06-19T05:17:21.6838362Z             {
2026-06-19T05:17:21.6838567Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:17:21.6838815Z               "line": 16
2026-06-19T05:17:21.6839064Z             },
2026-06-19T05:17:21.6839225Z             {
2026-06-19T05:17:21.6839440Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:17:21.6839674Z               "line": 63
2026-06-19T05:17:21.6839855Z             }
2026-06-19T05:17:21.6840028Z           ]
2026-06-19T05:17:21.6840183Z         },
2026-06-19T05:17:21.6840345Z         "int": {
2026-06-19T05:17:21.6840516Z           "complete": false,
2026-06-19T05:17:21.6840703Z           "evidence": []
2026-06-19T05:17:21.6840883Z         },
2026-06-19T05:17:21.6841036Z         "unit": {
2026-06-19T05:17:21.6841208Z           "complete": true,
2026-06-19T05:17:21.6841394Z           "evidence": [
2026-06-19T05:17:21.6841566Z             {
2026-06-19T05:17:21.6841780Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6842037Z               "line": 584
2026-06-19T05:17:21.6842215Z             },
2026-06-19T05:17:21.6842375Z             {
2026-06-19T05:17:21.6842566Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6842811Z               "line": 594
2026-06-19T05:17:21.6842984Z             },
2026-06-19T05:17:21.6843145Z             {
2026-06-19T05:17:21.6843336Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6843584Z               "line": 616
2026-06-19T05:17:21.6843794Z             },
2026-06-19T05:17:21.6843951Z             {
2026-06-19T05:17:21.6844132Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6844371Z               "line": 632
2026-06-19T05:17:21.6844547Z             },
2026-06-19T05:17:21.6844704Z             {
2026-06-19T05:17:21.6844895Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:17:21.6845140Z               "line": 690
2026-06-19T05:17:21.6845309Z             },
2026-06-19T05:17:21.6845462Z             {
2026-06-19T05:17:21.6845659Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6845903Z               "line": 472
2026-06-19T05:17:21.6846075Z             },
2026-06-19T05:17:21.6846236Z             {
2026-06-19T05:17:21.6846428Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:17:21.6846671Z               "line": 507
2026-06-19T05:17:21.6846951Z             },
2026-06-19T05:17:21.6847100Z             {
2026-06-19T05:17:21.6847290Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:17:21.6847523Z               "line": 120
2026-06-19T05:17:21.6847744Z             },
2026-06-19T05:17:21.6847890Z             {
2026-06-19T05:17:21.6848075Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:17:21.6848307Z               "line": 128
2026-06-19T05:17:21.6848484Z             }
2026-06-19T05:17:21.6848736Z           ]
2026-06-19T05:17:21.6848894Z         }
2026-06-19T05:17:21.6849123Z       }
2026-06-19T05:17:21.6849276Z     },
2026-06-19T05:17:21.6849428Z     {
2026-06-19T05:17:21.6849586Z       "id": "REQ-SUBNET-1",
2026-06-19T05:17:21.6850005Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-19T05:17:21.6850462Z       "requiredStages": [
2026-06-19T05:17:21.6850649Z         "impl",
2026-06-19T05:17:21.6850857Z         "unit"
2026-06-19T05:17:21.6851025Z       ],
2026-06-19T05:17:21.6851172Z       "stages": {
2026-06-19T05:17:21.6851349Z         "doc": {
2026-06-19T05:17:21.6851521Z           "complete": false,
2026-06-19T05:17:21.6851729Z           "evidence": []
2026-06-19T05:17:21.6851921Z         },
2026-06-19T05:17:21.6852116Z         "impl": {
2026-06-19T05:17:21.6852292Z           "complete": true,
2026-06-19T05:17:21.6852475Z           "evidence": [
2026-06-19T05:17:21.6852650Z             {
2026-06-19T05:17:21.6852866Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6853111Z               "line": 281
2026-06-19T05:17:21.6853281Z             },
2026-06-19T05:17:21.6853443Z             {
2026-06-19T05:17:21.6853681Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6853934Z               "line": 651
2026-06-19T05:17:21.6854097Z             },
2026-06-19T05:17:21.6854248Z             {
2026-06-19T05:17:21.6854426Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6854659Z               "line": 3275
2026-06-19T05:17:21.6854845Z             },
2026-06-19T05:17:21.6855003Z             {
2026-06-19T05:17:21.6855178Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6855399Z               "line": 3585
2026-06-19T05:17:21.6855570Z             },
2026-06-19T05:17:21.6855723Z             {
2026-06-19T05:17:21.6855897Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6856110Z               "line": 3604
2026-06-19T05:17:21.6856296Z             },
2026-06-19T05:17:21.6856458Z             {
2026-06-19T05:17:21.6856625Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6856834Z               "line": 3668
2026-06-19T05:17:21.6857002Z             },
2026-06-19T05:17:21.6857154Z             {
2026-06-19T05:17:21.6857321Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6857535Z               "line": 3710
2026-06-19T05:17:21.6857707Z             },
2026-06-19T05:17:21.6857899Z             {
2026-06-19T05:17:21.6858069Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6858285Z               "line": 3899
2026-06-19T05:17:21.6858450Z             },
2026-06-19T05:17:21.6858612Z             {
2026-06-19T05:17:21.6858781Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6859082Z               "line": 3969
2026-06-19T05:17:21.6859259Z             },
2026-06-19T05:17:21.6859434Z             {
2026-06-19T05:17:21.6859602Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6859812Z               "line": 4193
2026-06-19T05:17:21.6859988Z             },
2026-06-19T05:17:21.6860141Z             {
2026-06-19T05:17:21.6860312Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6860518Z               "line": 4830
2026-06-19T05:17:21.6860693Z             },
2026-06-19T05:17:21.6860857Z             {
2026-06-19T05:17:21.6861032Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6861265Z               "line": 418
2026-06-19T05:17:21.6861547Z             }
2026-06-19T05:17:21.6861703Z           ]
2026-06-19T05:17:21.6861856Z         },
2026-06-19T05:17:21.6862013Z         "int": {
2026-06-19T05:17:21.6862180Z           "complete": false,
2026-06-19T05:17:21.6862371Z           "evidence": []
2026-06-19T05:17:21.6862548Z         },
2026-06-19T05:17:21.6862701Z         "unit": {
2026-06-19T05:17:21.6862882Z           "complete": true,
2026-06-19T05:17:21.6863063Z           "evidence": [
2026-06-19T05:17:21.6863335Z             {
2026-06-19T05:17:21.6863543Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6863790Z               "line": 1584
2026-06-19T05:17:21.6863960Z             },
2026-06-19T05:17:21.6864114Z             {
2026-06-19T05:17:21.6864299Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6864532Z               "line": 9769
2026-06-19T05:17:21.6864709Z             },
2026-06-19T05:17:21.6864871Z             {
2026-06-19T05:17:21.6865052Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6865272Z               "line": 9939
2026-06-19T05:17:21.6865453Z             },
2026-06-19T05:17:21.6865611Z             {
2026-06-19T05:17:21.6865786Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6866001Z               "line": 9946
2026-06-19T05:17:21.6866173Z             },
2026-06-19T05:17:21.6866330Z             {
2026-06-19T05:17:21.6866505Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6866727Z               "line": 9999
2026-06-19T05:17:21.6866914Z             },
2026-06-19T05:17:21.6867070Z             {
2026-06-19T05:17:21.6867247Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6867466Z               "line": 10016
2026-06-19T05:17:21.6867639Z             },
2026-06-19T05:17:21.6867805Z             {
2026-06-19T05:17:21.6867986Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6868211Z               "line": 10046
2026-06-19T05:17:21.6868391Z             },
2026-06-19T05:17:21.6868559Z             {
2026-06-19T05:17:21.6868730Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6869029Z               "line": 10145
2026-06-19T05:17:21.6869205Z             },
2026-06-19T05:17:21.6869384Z             {
2026-06-19T05:17:21.6869557Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6869772Z               "line": 10296
2026-06-19T05:17:21.6869957Z             }
2026-06-19T05:17:21.6870110Z           ]
2026-06-19T05:17:21.6870266Z         }
2026-06-19T05:17:21.6870429Z       }
2026-06-19T05:17:21.6870586Z     },
2026-06-19T05:17:21.6870730Z     {
2026-06-19T05:17:21.6870887Z       "id": "REQ-SUBNET-2",
2026-06-19T05:17:21.6871211Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-19T05:17:21.6871578Z       "requiredStages": [
2026-06-19T05:17:21.6871764Z         "impl",
2026-06-19T05:17:21.6871929Z         "unit",
2026-06-19T05:17:21.6872098Z         "int"
2026-06-19T05:17:21.6872254Z       ],
2026-06-19T05:17:21.6872407Z       "stages": {
2026-06-19T05:17:21.6872578Z         "doc": {
2026-06-19T05:17:21.6872750Z           "complete": true,
2026-06-19T05:17:21.6872951Z           "evidence": [
2026-06-19T05:17:21.6873122Z             {
2026-06-19T05:17:21.6873352Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-19T05:17:21.6873633Z               "line": 60
2026-06-19T05:17:21.6873804Z             }
2026-06-19T05:17:21.6873962Z           ]
2026-06-19T05:17:21.6874117Z         },
2026-06-19T05:17:21.6874270Z         "impl": {
2026-06-19T05:17:21.6874444Z           "complete": true,
2026-06-19T05:17:21.6874640Z           "evidence": [
2026-06-19T05:17:21.6874816Z             {
2026-06-19T05:17:21.6874998Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.6875237Z               "line": 838
2026-06-19T05:17:21.6875416Z             },
2026-06-19T05:17:21.6875580Z             {
2026-06-19T05:17:21.6875774Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.6876118Z               "line": 1265
2026-06-19T05:17:21.6876298Z             },
2026-06-19T05:17:21.6876467Z             {
2026-06-19T05:17:21.6876652Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6876891Z               "line": 633
2026-06-19T05:17:21.6877075Z             },
2026-06-19T05:17:21.6877282Z             {
2026-06-19T05:17:21.6877464Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:17:21.6877697Z               "line": 817
2026-06-19T05:17:21.6877974Z             },
2026-06-19T05:17:21.6878127Z             {
2026-06-19T05:17:21.6878317Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6878560Z               "line": 26
2026-06-19T05:17:21.6878743Z             },
2026-06-19T05:17:21.6878899Z             {
2026-06-19T05:17:21.6879165Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6879396Z               "line": 60
2026-06-19T05:17:21.6879579Z             },
2026-06-19T05:17:21.6879742Z             {
2026-06-19T05:17:21.6879934Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6880174Z               "line": 168
2026-06-19T05:17:21.6880346Z             },
2026-06-19T05:17:21.6880502Z             {
2026-06-19T05:17:21.6880693Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6880927Z               "line": 295
2026-06-19T05:17:21.6881103Z             },
2026-06-19T05:17:21.6881271Z             {
2026-06-19T05:17:21.6881461Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6881694Z               "line": 417
2026-06-19T05:17:21.6881877Z             },
2026-06-19T05:17:21.6882028Z             {
2026-06-19T05:17:21.6882230Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:17:21.6882480Z               "line": 252
2026-06-19T05:17:21.6882648Z             },
2026-06-19T05:17:21.6882804Z             {
2026-06-19T05:17:21.6882977Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6883201Z               "line": 3631
2026-06-19T05:17:21.6883391Z             },
2026-06-19T05:17:21.6883554Z             {
2026-06-19T05:17:21.6883734Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6883954Z               "line": 4132
2026-06-19T05:17:21.6884131Z             },
2026-06-19T05:17:21.6884292Z             {
2026-06-19T05:17:21.6884470Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6884692Z               "line": 4761
2026-06-19T05:17:21.6884877Z             }
2026-06-19T05:17:21.6885037Z           ]
2026-06-19T05:17:21.6885186Z         },
2026-06-19T05:17:21.6885352Z         "int": {
2026-06-19T05:17:21.6885524Z           "complete": true,
2026-06-19T05:17:21.6885719Z           "evidence": [
2026-06-19T05:17:21.6885915Z             {
2026-06-19T05:17:21.6886111Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-19T05:17:21.6886353Z               "line": 22
2026-06-19T05:17:21.6886535Z             },
2026-06-19T05:17:21.6886703Z             {
2026-06-19T05:17:21.6886898Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6887145Z               "line": 644
2026-06-19T05:17:21.6887327Z             },
2026-06-19T05:17:21.6887488Z             {
2026-06-19T05:17:21.6887683Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.6887914Z               "line": 886
2026-06-19T05:17:21.6888082Z             }
2026-06-19T05:17:21.6888238Z           ]
2026-06-19T05:17:21.6888396Z         },
2026-06-19T05:17:21.6888548Z         "unit": {
2026-06-19T05:17:21.6888725Z           "complete": true,
2026-06-19T05:17:21.6888916Z           "evidence": [
2026-06-19T05:17:21.6889163Z             {
2026-06-19T05:17:21.6889359Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6889603Z               "line": 586
2026-06-19T05:17:21.6889779Z             },
2026-06-19T05:17:21.6889942Z             {
2026-06-19T05:17:21.6890112Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6890438Z               "line": 9809
2026-06-19T05:17:21.6890605Z             },
2026-06-19T05:17:21.6890767Z             {
2026-06-19T05:17:21.6890939Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6891158Z               "line": 10503
2026-06-19T05:17:21.6891340Z             }
2026-06-19T05:17:21.6891488Z           ]
2026-06-19T05:17:21.6891635Z         }
2026-06-19T05:17:21.6891792Z       }
2026-06-19T05:17:21.6891954Z     },
2026-06-19T05:17:21.6892194Z     {
2026-06-19T05:17:21.6892369Z       "id": "REQ-SUBNET-3",
2026-06-19T05:17:21.6892742Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-19T05:17:21.6893136Z       "requiredStages": [
2026-06-19T05:17:21.6893317Z         "impl",
2026-06-19T05:17:21.6893480Z         "unit"
2026-06-19T05:17:21.6893632Z       ],
2026-06-19T05:17:21.6893785Z       "stages": {
2026-06-19T05:17:21.6893941Z         "doc": {
2026-06-19T05:17:21.6894128Z           "complete": false,
2026-06-19T05:17:21.6897945Z           "evidence": []
2026-06-19T05:17:21.6898152Z         },
2026-06-19T05:17:21.6898319Z         "impl": {
2026-06-19T05:17:21.6898498Z           "complete": true,
2026-06-19T05:17:21.6898694Z           "evidence": [
2026-06-19T05:17:21.6898875Z             {
2026-06-19T05:17:21.6899161Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6899418Z               "line": 152
2026-06-19T05:17:21.6899610Z             },
2026-06-19T05:17:21.6899767Z             {
2026-06-19T05:17:21.6899966Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6900211Z               "line": 299
2026-06-19T05:17:21.6900377Z             },
2026-06-19T05:17:21.6900540Z             {
2026-06-19T05:17:21.6900728Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6900960Z               "line": 443
2026-06-19T05:17:21.6901146Z             },
2026-06-19T05:17:21.6901303Z             {
2026-06-19T05:17:21.6901490Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6901733Z               "line": 532
2026-06-19T05:17:21.6901909Z             },
2026-06-19T05:17:21.6902067Z             {
2026-06-19T05:17:21.6902257Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6902500Z               "line": 125
2026-06-19T05:17:21.6902682Z             },
2026-06-19T05:17:21.6902834Z             {
2026-06-19T05:17:21.6903016Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6903258Z               "line": 253
2026-06-19T05:17:21.6903426Z             },
2026-06-19T05:17:21.6903577Z             {
2026-06-19T05:17:21.6903769Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6904001Z               "line": 264
2026-06-19T05:17:21.6904168Z             },
2026-06-19T05:17:21.6904336Z             {
2026-06-19T05:17:21.6904521Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6904755Z               "line": 285
2026-06-19T05:17:21.6904931Z             },
2026-06-19T05:17:21.6905074Z             {
2026-06-19T05:17:21.6905261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6905494Z               "line": 621
2026-06-19T05:17:21.6905670Z             },
2026-06-19T05:17:21.6905836Z             {
2026-06-19T05:17:21.6906016Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6906249Z               "line": 680
2026-06-19T05:17:21.6906425Z             },
2026-06-19T05:17:21.6906578Z             {
2026-06-19T05:17:21.6906773Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6907007Z               "line": 61
2026-06-19T05:17:21.6907174Z             },
2026-06-19T05:17:21.6907331Z             {
2026-06-19T05:17:21.6907523Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6907759Z               "line": 90
2026-06-19T05:17:21.6908074Z             },
2026-06-19T05:17:21.6908228Z             {
2026-06-19T05:17:21.6908414Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6908651Z               "line": 125
2026-06-19T05:17:21.6908822Z             },
2026-06-19T05:17:21.6909048Z             {
2026-06-19T05:17:21.6909245Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-19T05:17:21.6909488Z               "line": 9
2026-06-19T05:17:21.6909658Z             },
2026-06-19T05:17:21.6909813Z             {
2026-06-19T05:17:21.6910084Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6910302Z               "line": 3969
2026-06-19T05:17:21.6910475Z             },
2026-06-19T05:17:21.6910627Z             {
2026-06-19T05:17:21.6910814Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6911043Z               "line": 445
2026-06-19T05:17:21.6911212Z             }
2026-06-19T05:17:21.6911370Z           ]
2026-06-19T05:17:21.6911525Z         },
2026-06-19T05:17:21.6911682Z         "int": {
2026-06-19T05:17:21.6911849Z           "complete": false,
2026-06-19T05:17:21.6912046Z           "evidence": []
2026-06-19T05:17:21.6912221Z         },
2026-06-19T05:17:21.6912374Z         "unit": {
2026-06-19T05:17:21.6912540Z           "complete": true,
2026-06-19T05:17:21.6912727Z           "evidence": [
2026-06-19T05:17:21.6912898Z             {
2026-06-19T05:17:21.6913099Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6913347Z               "line": 1356
2026-06-19T05:17:21.6913523Z             },
2026-06-19T05:17:21.6913681Z             {
2026-06-19T05:17:21.6913877Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6914118Z               "line": 1713
2026-06-19T05:17:21.6914300Z             },
2026-06-19T05:17:21.6914451Z             {
2026-06-19T05:17:21.6914643Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6914887Z               "line": 890
2026-06-19T05:17:21.6915061Z             },
2026-06-19T05:17:21.6915211Z             {
2026-06-19T05:17:21.6915400Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6915634Z               "line": 991
2026-06-19T05:17:21.6915807Z             },
2026-06-19T05:17:21.6915953Z             {
2026-06-19T05:17:21.6916136Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6916377Z               "line": 1041
2026-06-19T05:17:21.6916553Z             },
2026-06-19T05:17:21.6916698Z             {
2026-06-19T05:17:21.6916895Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6917128Z               "line": 1100
2026-06-19T05:17:21.6917299Z             },
2026-06-19T05:17:21.6917453Z             {
2026-06-19T05:17:21.6917643Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:17:21.6917882Z               "line": 234
2026-06-19T05:17:21.6918053Z             },
2026-06-19T05:17:21.6918215Z             {
2026-06-19T05:17:21.6918403Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-19T05:17:21.6918649Z               "line": 49
2026-06-19T05:17:21.6918825Z             },
2026-06-19T05:17:21.6919047Z             {
2026-06-19T05:17:21.6919221Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6919434Z               "line": 10145
2026-06-19T05:17:21.6919613Z             },
2026-06-19T05:17:21.6919762Z             {
2026-06-19T05:17:21.6919938Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6920153Z               "line": 10251
2026-06-19T05:17:21.6920334Z             },
2026-06-19T05:17:21.6920482Z             {
2026-06-19T05:17:21.6920649Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6920867Z               "line": 10469
2026-06-19T05:17:21.6921040Z             }
2026-06-19T05:17:21.6921182Z           ]
2026-06-19T05:17:21.6921341Z         }
2026-06-19T05:17:21.6921497Z       }
2026-06-19T05:17:21.6921641Z     },
2026-06-19T05:17:21.6921782Z     {
2026-06-19T05:17:21.6921944Z       "id": "REQ-SUBNET-4",
2026-06-19T05:17:21.6922433Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-19T05:17:21.6922838Z       "requiredStages": [
2026-06-19T05:17:21.6923020Z         "impl",
2026-06-19T05:17:21.6923178Z         "unit"
2026-06-19T05:17:21.6923344Z       ],
2026-06-19T05:17:21.6923502Z       "stages": {
2026-06-19T05:17:21.6923664Z         "doc": {
2026-06-19T05:17:21.6923827Z           "complete": true,
2026-06-19T05:17:21.6924117Z           "evidence": [
2026-06-19T05:17:21.6924292Z             {
2026-06-19T05:17:21.6924523Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-19T05:17:21.6924797Z               "line": 60
2026-06-19T05:17:21.6924969Z             }
2026-06-19T05:17:21.6925126Z           ]
2026-06-19T05:17:21.6925279Z         },
2026-06-19T05:17:21.6925432Z         "impl": {
2026-06-19T05:17:21.6925598Z           "complete": true,
2026-06-19T05:17:21.6925785Z           "evidence": [
2026-06-19T05:17:21.6925965Z             {
2026-06-19T05:17:21.6926138Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6926347Z               "line": 3275
2026-06-19T05:17:21.6926523Z             },
2026-06-19T05:17:21.6926686Z             {
2026-06-19T05:17:21.6926856Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6927076Z               "line": 4728
2026-06-19T05:17:21.6927250Z             },
2026-06-19T05:17:21.6927403Z             {
2026-06-19T05:17:21.6927574Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6927789Z               "line": 4761
2026-06-19T05:17:21.6927955Z             }
2026-06-19T05:17:21.6928113Z           ]
2026-06-19T05:17:21.6928265Z         },
2026-06-19T05:17:21.6928413Z         "int": {
2026-06-19T05:17:21.6928580Z           "complete": false,
2026-06-19T05:17:21.6928766Z           "evidence": []
2026-06-19T05:17:21.6928933Z         },
2026-06-19T05:17:21.6929171Z         "unit": {
2026-06-19T05:17:21.6929362Z           "complete": true,
2026-06-19T05:17:21.6929554Z           "evidence": [
2026-06-19T05:17:21.6929728Z             {
2026-06-19T05:17:21.6929899Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6930117Z               "line": 9925
2026-06-19T05:17:21.6930294Z             },
2026-06-19T05:17:21.6930446Z             {
2026-06-19T05:17:21.6930613Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6930822Z               "line": 9999
2026-06-19T05:17:21.6931004Z             }
2026-06-19T05:17:21.6931157Z           ]
2026-06-19T05:17:21.6931309Z         }
2026-06-19T05:17:21.6931461Z       }
2026-06-19T05:17:21.6931605Z     },
2026-06-19T05:17:21.6931752Z     {
2026-06-19T05:17:21.6931915Z       "id": "REQ-SUBNET-5",
2026-06-19T05:17:21.6933213Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-19T05:17:21.6934304Z       "requiredStages": [
2026-06-19T05:17:21.6934495Z         "impl",
2026-06-19T05:17:21.6934663Z         "unit",
2026-06-19T05:17:21.6934824Z         "int"
2026-06-19T05:17:21.6934982Z       ],
2026-06-19T05:17:21.6935139Z       "stages": {
2026-06-19T05:17:21.6935304Z         "doc": {
2026-06-19T05:17:21.6935473Z           "complete": false,
2026-06-19T05:17:21.6935673Z           "evidence": []
2026-06-19T05:17:21.6935858Z         },
2026-06-19T05:17:21.6936016Z         "impl": {
2026-06-19T05:17:21.6936187Z           "complete": true,
2026-06-19T05:17:21.6936378Z           "evidence": [
2026-06-19T05:17:21.6936549Z             {
2026-06-19T05:17:21.6936736Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:17:21.6936980Z               "line": 128
2026-06-19T05:17:21.6937155Z             },
2026-06-19T05:17:21.6937426Z             {
2026-06-19T05:17:21.6937621Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:17:21.6937856Z               "line": 413
2026-06-19T05:17:21.6938026Z             },
2026-06-19T05:17:21.6938186Z             {
2026-06-19T05:17:21.6938382Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6938616Z               "line": 74
2026-06-19T05:17:21.6938792Z             },
2026-06-19T05:17:21.6939017Z             {
2026-06-19T05:17:21.6939212Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.6939542Z               "line": 332
2026-06-19T05:17:21.6939626Z             },
2026-06-19T05:17:21.6939698Z             {
2026-06-19T05:17:21.6939809Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.6939899Z               "line": 621
2026-06-19T05:17:21.6939974Z             },
2026-06-19T05:17:21.6940046Z             {
2026-06-19T05:17:21.6940167Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:17:21.6940260Z               "line": 31
2026-06-19T05:17:21.6940336Z             },
2026-06-19T05:17:21.6940416Z             {
2026-06-19T05:17:21.6940545Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:17:21.6940629Z               "line": 50
2026-06-19T05:17:21.6940710Z             },
2026-06-19T05:17:21.6940796Z             {
2026-06-19T05:17:21.6940906Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:17:21.6940991Z               "line": 69
2026-06-19T05:17:21.6941077Z             },
2026-06-19T05:17:21.6941154Z             {
2026-06-19T05:17:21.6941263Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:17:21.6941353Z               "line": 113
2026-06-19T05:17:21.6941441Z             },
2026-06-19T05:17:21.6941516Z             {
2026-06-19T05:17:21.6941640Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-19T05:17:21.6941726Z               "line": 25
2026-06-19T05:17:21.6941807Z             },
2026-06-19T05:17:21.6941888Z             {
2026-06-19T05:17:21.6942007Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-19T05:17:21.6942090Z               "line": 34
2026-06-19T05:17:21.6942165Z             },
2026-06-19T05:17:21.6942250Z             {
2026-06-19T05:17:21.6942370Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:17:21.6942447Z               "line": 17
2026-06-19T05:17:21.6942526Z             },
2026-06-19T05:17:21.6942599Z             {
2026-06-19T05:17:21.6942704Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6942790Z               "line": 4686
2026-06-19T05:17:21.6942870Z             },
2026-06-19T05:17:21.6942950Z             {
2026-06-19T05:17:21.6943055Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:17:21.6943140Z               "line": 419
2026-06-19T05:17:21.6943215Z             }
2026-06-19T05:17:21.6943300Z           ]
2026-06-19T05:17:21.6943387Z         },
2026-06-19T05:17:21.6943469Z         "int": {
2026-06-19T05:17:21.6943553Z           "complete": true,
2026-06-19T05:17:21.6943644Z           "evidence": [
2026-06-19T05:17:21.6943721Z             {
2026-06-19T05:17:21.6943840Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.6943925Z               "line": 819
2026-06-19T05:17:21.6944007Z             }
2026-06-19T05:17:21.6944088Z           ]
2026-06-19T05:17:21.6944159Z         },
2026-06-19T05:17:21.6944249Z         "unit": {
2026-06-19T05:17:21.6944336Z           "complete": true,
2026-06-19T05:17:21.6944426Z           "evidence": [
2026-06-19T05:17:21.6944507Z             {
2026-06-19T05:17:21.6944617Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.6944703Z               "line": 341
2026-06-19T05:17:21.6944784Z             },
2026-06-19T05:17:21.6944864Z             {
2026-06-19T05:17:21.6944989Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:17:21.6945075Z               "line": 1115
2026-06-19T05:17:21.6945257Z             },
2026-06-19T05:17:21.6945342Z             {
2026-06-19T05:17:21.6945461Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:17:21.6945552Z               "line": 151
2026-06-19T05:17:21.6945633Z             },
2026-06-19T05:17:21.6945713Z             {
2026-06-19T05:17:21.6945826Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-19T05:17:21.6945913Z               "line": 61
2026-06-19T05:17:21.6945994Z             },
2026-06-19T05:17:21.6946151Z             {
2026-06-19T05:17:21.6946266Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:17:21.6946347Z               "line": 111
2026-06-19T05:17:21.6946423Z             },
2026-06-19T05:17:21.6946504Z             {
2026-06-19T05:17:21.6946624Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:17:21.6946710Z               "line": 138
2026-06-19T05:17:21.6946799Z             },
2026-06-19T05:17:21.6946881Z             {
2026-06-19T05:17:21.6947000Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:17:21.6947090Z               "line": 148
2026-06-19T05:17:21.6947172Z             },
2026-06-19T05:17:21.6947249Z             {
2026-06-19T05:17:21.6947353Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6947443Z               "line": 9826
2026-06-19T05:17:21.6947525Z             }
2026-06-19T05:17:21.6947606Z           ]
2026-06-19T05:17:21.6947691Z         }
2026-06-19T05:17:21.6947773Z       }
2026-06-19T05:17:21.6947859Z     },
2026-06-19T05:17:21.6947931Z     {
2026-06-19T05:17:21.6948024Z       "id": "REQ-SUBNET-6",
2026-06-19T05:17:21.6948689Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-19T05:17:21.6948780Z       "requiredStages": [
2026-06-19T05:17:21.6948871Z         "impl",
2026-06-19T05:17:21.6949042Z         "unit"
2026-06-19T05:17:21.6949119Z       ],
2026-06-19T05:17:21.6949204Z       "stages": {
2026-06-19T05:17:21.6949281Z         "doc": {
2026-06-19T05:17:21.6949376Z           "complete": false,
2026-06-19T05:17:21.6949453Z           "evidence": []
2026-06-19T05:17:21.6949538Z         },
2026-06-19T05:17:21.6949623Z         "impl": {
2026-06-19T05:17:21.6949714Z           "complete": true,
2026-06-19T05:17:21.6949801Z           "evidence": [
2026-06-19T05:17:21.6949886Z             {
2026-06-19T05:17:21.6950010Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6950092Z               "line": 254
2026-06-19T05:17:21.6950172Z             },
2026-06-19T05:17:21.6950249Z             {
2026-06-19T05:17:21.6950349Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6950426Z               "line": 4344
2026-06-19T05:17:21.6950506Z             },
2026-06-19T05:17:21.6950587Z             {
2026-06-19T05:17:21.6950674Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6950765Z               "line": 4361
2026-06-19T05:17:21.6950835Z             },
2026-06-19T05:17:21.6950915Z             {
2026-06-19T05:17:21.6951020Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6951096Z               "line": 4414
2026-06-19T05:17:21.6951180Z             },
2026-06-19T05:17:21.6951261Z             {
2026-06-19T05:17:21.6951361Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6951447Z               "line": 4437
2026-06-19T05:17:21.6951532Z             }
2026-06-19T05:17:21.6951613Z           ]
2026-06-19T05:17:21.6951691Z         },
2026-06-19T05:17:21.6951771Z         "int": {
2026-06-19T05:17:21.6951851Z           "complete": false,
2026-06-19T05:17:21.6951942Z           "evidence": []
2026-06-19T05:17:21.6952020Z         },
2026-06-19T05:17:21.6952095Z         "unit": {
2026-06-19T05:17:21.6952190Z           "complete": true,
2026-06-19T05:17:21.6952272Z           "evidence": [
2026-06-19T05:17:21.6952463Z             {
2026-06-19T05:17:21.6952562Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6952645Z               "line": 9840
2026-06-19T05:17:21.6952720Z             },
2026-06-19T05:17:21.6952801Z             {
2026-06-19T05:17:21.6952896Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6952979Z               "line": 9873
2026-06-19T05:17:21.6953058Z             },
2026-06-19T05:17:21.6953134Z             {
2026-06-19T05:17:21.6953236Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6953415Z               "line": 9882
2026-06-19T05:17:21.6953500Z             }
2026-06-19T05:17:21.6953581Z           ]
2026-06-19T05:17:21.6953662Z         }
2026-06-19T05:17:21.6953746Z       }
2026-06-19T05:17:21.6953822Z     },
2026-06-19T05:17:21.6953904Z     {
2026-06-19T05:17:21.6953995Z       "id": "REQ-SUBNET-7",
2026-06-19T05:17:21.6955592Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-19T05:17:21.6955697Z       "requiredStages": [
2026-06-19T05:17:21.6955793Z         "impl",
2026-06-19T05:17:21.6955879Z         "unit"
2026-06-19T05:17:21.6955963Z       ],
2026-06-19T05:17:21.6956045Z       "stages": {
2026-06-19T05:17:21.6956132Z         "doc": {
2026-06-19T05:17:21.6956222Z           "complete": false,
2026-06-19T05:17:21.6956311Z           "evidence": []
2026-06-19T05:17:21.6956386Z         },
2026-06-19T05:17:21.6956468Z         "impl": {
2026-06-19T05:17:21.6956545Z           "complete": true,
2026-06-19T05:17:21.6956640Z           "evidence": [
2026-06-19T05:17:21.6956730Z             {
2026-06-19T05:17:21.6956846Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-19T05:17:21.6956931Z               "line": 17
2026-06-19T05:17:21.6957011Z             },
2026-06-19T05:17:21.6957093Z             {
2026-06-19T05:17:21.6957203Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6957288Z               "line": 103
2026-06-19T05:17:21.6957364Z             },
2026-06-19T05:17:21.6957442Z             {
2026-06-19T05:17:21.6957565Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:17:21.6957646Z               "line": 312
2026-06-19T05:17:21.6957727Z             },
2026-06-19T05:17:21.6957818Z             {
2026-06-19T05:17:21.6957937Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:17:21.6958018Z               "line": 131
2026-06-19T05:17:21.6958095Z             },
2026-06-19T05:17:21.6958176Z             {
2026-06-19T05:17:21.6958313Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6958405Z               "line": 160
2026-06-19T05:17:21.6958486Z             },
2026-06-19T05:17:21.6958560Z             {
2026-06-19T05:17:21.6958684Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6958775Z               "line": 447
2026-06-19T05:17:21.6958850Z             },
2026-06-19T05:17:21.6958930Z             {
2026-06-19T05:17:21.6959136Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6959225Z               "line": 670
2026-06-19T05:17:21.6959302Z             },
2026-06-19T05:17:21.6959383Z             {
2026-06-19T05:17:21.6959502Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6959592Z               "line": 710
2026-06-19T05:17:21.6959670Z             },
2026-06-19T05:17:21.6959751Z             {
2026-06-19T05:17:21.6959874Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6959945Z               "line": 766
2026-06-19T05:17:21.6960142Z             },
2026-06-19T05:17:21.6960221Z             {
2026-06-19T05:17:21.6960337Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6960422Z               "line": 136
2026-06-19T05:17:21.6960504Z             },
2026-06-19T05:17:21.6960585Z             {
2026-06-19T05:17:21.6960695Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6960784Z               "line": 139
2026-06-19T05:17:21.6960865Z             }
2026-06-19T05:17:21.6961043Z           ]
2026-06-19T05:17:21.6961133Z         },
2026-06-19T05:17:21.6961219Z         "int": {
2026-06-19T05:17:21.6961306Z           "complete": false,
2026-06-19T05:17:21.6961386Z           "evidence": []
2026-06-19T05:17:21.6961470Z         },
2026-06-19T05:17:21.6961551Z         "unit": {
2026-06-19T05:17:21.6961642Z           "complete": true,
2026-06-19T05:17:21.6961726Z           "evidence": [
2026-06-19T05:17:21.6961811Z             {
2026-06-19T05:17:21.6961931Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-19T05:17:21.6962012Z               "line": 136
2026-06-19T05:17:21.6962092Z             },
2026-06-19T05:17:21.6962173Z             {
2026-06-19T05:17:21.6962284Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-19T05:17:21.6962370Z               "line": 156
2026-06-19T05:17:21.6962450Z             },
2026-06-19T05:17:21.6962532Z             {
2026-06-19T05:17:21.6962641Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6962741Z               "line": 987
2026-06-19T05:17:21.6962822Z             },
2026-06-19T05:17:21.6962909Z             {
2026-06-19T05:17:21.6966280Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:17:21.6966401Z               "line": 1009
2026-06-19T05:17:21.6966486Z             },
2026-06-19T05:17:21.6966567Z             {
2026-06-19T05:17:21.6966716Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:17:21.6966819Z               "line": 1419
2026-06-19T05:17:21.6966900Z             },
2026-06-19T05:17:21.6966980Z             {
2026-06-19T05:17:21.6967101Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:17:21.6967186Z               "line": 1036
2026-06-19T05:17:21.6967257Z             }
2026-06-19T05:17:21.6967328Z           ]
2026-06-19T05:17:21.6967406Z         }
2026-06-19T05:17:21.6967487Z       }
2026-06-19T05:17:21.6967562Z     },
2026-06-19T05:17:21.6967634Z     {
2026-06-19T05:17:21.6967735Z       "id": "REQ-SUBNET-8",
2026-06-19T05:17:21.6968859Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-19T05:17:21.6969078Z       "requiredStages": [
2026-06-19T05:17:21.6969178Z         "impl",
2026-06-19T05:17:21.6969254Z         "unit"
2026-06-19T05:17:21.6969330Z       ],
2026-06-19T05:17:21.6969410Z       "stages": {
2026-06-19T05:17:21.6969495Z         "doc": {
2026-06-19T05:17:21.6969586Z           "complete": false,
2026-06-19T05:17:21.6969677Z           "evidence": []
2026-06-19T05:17:21.6969757Z         },
2026-06-19T05:17:21.6969823Z         "impl": {
2026-06-19T05:17:21.6969915Z           "complete": true,
2026-06-19T05:17:21.6970001Z           "evidence": [
2026-06-19T05:17:21.6970082Z             {
2026-06-19T05:17:21.6970191Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6970278Z               "line": 3711
2026-06-19T05:17:21.6970358Z             },
2026-06-19T05:17:21.6970434Z             {
2026-06-19T05:17:21.6970540Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6970625Z               "line": 3740
2026-06-19T05:17:21.6970702Z             },
2026-06-19T05:17:21.6970781Z             {
2026-06-19T05:17:21.6971016Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6971101Z               "line": 3757
2026-06-19T05:17:21.6971169Z             },
2026-06-19T05:17:21.6971255Z             {
2026-06-19T05:17:21.6971344Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6971425Z               "line": 3780
2026-06-19T05:17:21.6971509Z             },
2026-06-19T05:17:21.6971589Z             {
2026-06-19T05:17:21.6971693Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6971866Z               "line": 4194
2026-06-19T05:17:21.6971951Z             }
2026-06-19T05:17:21.6972021Z           ]
2026-06-19T05:17:21.6972106Z         },
2026-06-19T05:17:21.6972178Z         "int": {
2026-06-19T05:17:21.6972272Z           "complete": false,
2026-06-19T05:17:21.6972352Z           "evidence": []
2026-06-19T05:17:21.6972433Z         },
2026-06-19T05:17:21.6972515Z         "unit": {
2026-06-19T05:17:21.6972611Z           "complete": true,
2026-06-19T05:17:21.6972695Z           "evidence": [
2026-06-19T05:17:21.6972777Z             {
2026-06-19T05:17:21.6972873Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6972954Z               "line": 10030
2026-06-19T05:17:21.6973034Z             },
2026-06-19T05:17:21.6973116Z             {
2026-06-19T05:17:21.6973211Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6973301Z               "line": 10046
2026-06-19T05:17:21.6973373Z             }
2026-06-19T05:17:21.6973455Z           ]
2026-06-19T05:17:21.6973535Z         }
2026-06-19T05:17:21.6973625Z       }
2026-06-19T05:17:21.6973706Z     },
2026-06-19T05:17:21.6973789Z     {
2026-06-19T05:17:21.6973869Z       "id": "REQ-TERM-1",
2026-06-19T05:17:21.6974036Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-19T05:17:21.6974132Z       "requiredStages": [
2026-06-19T05:17:21.6974216Z         "impl",
2026-06-19T05:17:21.6974293Z         "unit"
2026-06-19T05:17:21.6974366Z       ],
2026-06-19T05:17:21.6974447Z       "stages": {
2026-06-19T05:17:21.6974526Z         "doc": {
2026-06-19T05:17:21.6974617Z           "complete": false,
2026-06-19T05:17:21.6974702Z           "evidence": []
2026-06-19T05:17:21.6974788Z         },
2026-06-19T05:17:21.6974867Z         "impl": {
2026-06-19T05:17:21.6974948Z           "complete": true,
2026-06-19T05:17:21.6975033Z           "evidence": [
2026-06-19T05:17:21.6975115Z             {
2026-06-19T05:17:21.6975219Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:17:21.6975305Z               "line": 59
2026-06-19T05:17:21.6975397Z             },
2026-06-19T05:17:21.6975473Z             {
2026-06-19T05:17:21.6975582Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:17:21.6975654Z               "line": 234
2026-06-19T05:17:21.6975735Z             },
2026-06-19T05:17:21.6975816Z             {
2026-06-19T05:17:21.6975934Z               "path": "crates/spt-term/src/surface.rs",
2026-06-19T05:17:21.6976022Z               "line": 100
2026-06-19T05:17:21.6976092Z             }
2026-06-19T05:17:21.6976187Z           ]
2026-06-19T05:17:21.6976263Z         },
2026-06-19T05:17:21.6976351Z         "int": {
2026-06-19T05:17:21.6976426Z           "complete": false,
2026-06-19T05:17:21.6976507Z           "evidence": []
2026-06-19T05:17:21.6976593Z         },
2026-06-19T05:17:21.6976670Z         "unit": {
2026-06-19T05:17:21.6976755Z           "complete": true,
2026-06-19T05:17:21.6976836Z           "evidence": [
2026-06-19T05:17:21.6976923Z             {
2026-06-19T05:17:21.6977041Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-19T05:17:21.6977136Z               "line": 24
2026-06-19T05:17:21.6977218Z             },
2026-06-19T05:17:21.6977300Z             {
2026-06-19T05:17:21.6977412Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-19T05:17:21.6977488Z               "line": 56
2026-06-19T05:17:21.6977569Z             }
2026-06-19T05:17:21.6977651Z           ]
2026-06-19T05:17:21.6977732Z         }
2026-06-19T05:17:21.6977812Z       }
2026-06-19T05:17:21.6977966Z     },
2026-06-19T05:17:21.6978051Z     {
2026-06-19T05:17:21.6978137Z       "id": "REQ-TERM-2",
2026-06-19T05:17:21.6978318Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-19T05:17:21.6978399Z       "requiredStages": [
2026-06-19T05:17:21.6978484Z         "impl",
2026-06-19T05:17:21.6978562Z         "unit"
2026-06-19T05:17:21.6978638Z       ],
2026-06-19T05:17:21.6978723Z       "stages": {
2026-06-19T05:17:21.6978808Z         "doc": {
2026-06-19T05:17:21.6979052Z           "complete": false,
2026-06-19T05:17:21.6979133Z           "evidence": []
2026-06-19T05:17:21.6979216Z         },
2026-06-19T05:17:21.6979296Z         "impl": {
2026-06-19T05:17:21.6979371Z           "complete": true,
2026-06-19T05:17:21.6979462Z           "evidence": [
2026-06-19T05:17:21.6979531Z             {
2026-06-19T05:17:21.6979653Z               "path": "crates/spt-term/src/surface.rs",
2026-06-19T05:17:21.6979733Z               "line": 117
2026-06-19T05:17:21.6979814Z             },
2026-06-19T05:17:21.6979895Z             {
2026-06-19T05:17:21.6979993Z               "path": "crates/spt-term/src/surface.rs",
2026-06-19T05:17:21.6980078Z               "line": 127
2026-06-19T05:17:21.6980155Z             }
2026-06-19T05:17:21.6980237Z           ]
2026-06-19T05:17:21.6980313Z         },
2026-06-19T05:17:21.6980393Z         "int": {
2026-06-19T05:17:21.6980485Z           "complete": false,
2026-06-19T05:17:21.6980566Z           "evidence": []
2026-06-19T05:17:21.6980646Z         },
2026-06-19T05:17:21.6980731Z         "unit": {
2026-06-19T05:17:21.6980818Z           "complete": true,
2026-06-19T05:17:21.6980895Z           "evidence": [
2026-06-19T05:17:21.6980980Z             {
2026-06-19T05:17:21.6981100Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-19T05:17:21.6981176Z               "line": 46
2026-06-19T05:17:21.6981257Z             },
2026-06-19T05:17:21.6981337Z             {
2026-06-19T05:17:21.6981444Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-19T05:17:21.6981524Z               "line": 77
2026-06-19T05:17:21.6981595Z             }
2026-06-19T05:17:21.6981680Z           ]
2026-06-19T05:17:21.6981763Z         }
2026-06-19T05:17:21.6981853Z       }
2026-06-19T05:17:21.6981924Z     },
2026-06-19T05:17:21.6982005Z     {
2026-06-19T05:17:21.6982092Z       "id": "REQ-TERM-3",
2026-06-19T05:17:21.6982229Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-19T05:17:21.6982325Z       "requiredStages": [
2026-06-19T05:17:21.6982398Z         "impl",
2026-06-19T05:17:21.6982487Z         "unit"
2026-06-19T05:17:21.6982567Z       ],
2026-06-19T05:17:21.6982648Z       "stages": {
2026-06-19T05:17:21.6982720Z         "doc": {
2026-06-19T05:17:21.6982814Z           "complete": false,
2026-06-19T05:17:21.6982903Z           "evidence": []
2026-06-19T05:17:21.6982984Z         },
2026-06-19T05:17:21.6983060Z         "impl": {
2026-06-19T05:17:21.6983142Z           "complete": true,
2026-06-19T05:17:21.6983227Z           "evidence": [
2026-06-19T05:17:21.6983313Z             {
2026-06-19T05:17:21.6983424Z               "path": "crates/spt-term/src/stream.rs",
2026-06-19T05:17:21.6983509Z               "line": 71
2026-06-19T05:17:21.6983579Z             }
2026-06-19T05:17:21.6983662Z           ]
2026-06-19T05:17:21.6983734Z         },
2026-06-19T05:17:21.6983815Z         "int": {
2026-06-19T05:17:21.6983894Z           "complete": false,
2026-06-19T05:17:21.6983981Z           "evidence": []
2026-06-19T05:17:21.6984063Z         },
2026-06-19T05:17:21.6984138Z         "unit": {
2026-06-19T05:17:21.6984223Z           "complete": true,
2026-06-19T05:17:21.6984306Z           "evidence": [
2026-06-19T05:17:21.6984382Z             {
2026-06-19T05:17:21.6984486Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-19T05:17:21.6984567Z               "line": 37
2026-06-19T05:17:21.6984654Z             },
2026-06-19T05:17:21.6984730Z             {
2026-06-19T05:17:21.6984848Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-19T05:17:21.6985040Z               "line": 67
2026-06-19T05:17:21.6985115Z             }
2026-06-19T05:17:21.6985200Z           ]
2026-06-19T05:17:21.6985277Z         }
2026-06-19T05:17:21.6985357Z       }
2026-06-19T05:17:21.6985432Z     },
2026-06-19T05:17:21.6985512Z     {
2026-06-19T05:17:21.6985603Z       "id": "REQ-TERM-4",
2026-06-19T05:17:21.6986066Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-19T05:17:21.6986257Z       "requiredStages": [
2026-06-19T05:17:21.6986342Z         "impl",
2026-06-19T05:17:21.6986423Z         "unit",
2026-06-19T05:17:21.6986504Z         "int"
2026-06-19T05:17:21.6986582Z       ],
2026-06-19T05:17:21.6986657Z       "stages": {
2026-06-19T05:17:21.6986738Z         "doc": {
2026-06-19T05:17:21.6986819Z           "complete": false,
2026-06-19T05:17:21.6986906Z           "evidence": []
2026-06-19T05:17:21.6986986Z         },
2026-06-19T05:17:21.6987071Z         "impl": {
2026-06-19T05:17:21.6987163Z           "complete": true,
2026-06-19T05:17:21.6987245Z           "evidence": [
2026-06-19T05:17:21.6987329Z             {
2026-06-19T05:17:21.6987434Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.6987516Z               "line": 37
2026-06-19T05:17:21.6987597Z             },
2026-06-19T05:17:21.6987677Z             {
2026-06-19T05:17:21.6987803Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6987898Z               "line": 25
2026-06-19T05:17:21.6987972Z             },
2026-06-19T05:17:21.6988049Z             {
2026-06-19T05:17:21.6988163Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6988245Z               "line": 114
2026-06-19T05:17:21.6988325Z             },
2026-06-19T05:17:21.6988405Z             {
2026-06-19T05:17:21.6988521Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6988598Z               "line": 267
2026-06-19T05:17:21.6988673Z             },
2026-06-19T05:17:21.6988754Z             {
2026-06-19T05:17:21.6988878Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6989026Z               "line": 289
2026-06-19T05:17:21.6989112Z             },
2026-06-19T05:17:21.6989188Z             {
2026-06-19T05:17:21.6989297Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6989378Z               "line": 307
2026-06-19T05:17:21.6989461Z             },
2026-06-19T05:17:21.6989545Z             {
2026-06-19T05:17:21.6989646Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:17:21.6989732Z               "line": 33
2026-06-19T05:17:21.6989813Z             },
2026-06-19T05:17:21.6989888Z             {
2026-06-19T05:17:21.6990008Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6990086Z               "line": 52
2026-06-19T05:17:21.6990161Z             },
2026-06-19T05:17:21.6990237Z             {
2026-06-19T05:17:21.6990360Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6990436Z               "line": 180
2026-06-19T05:17:21.6990506Z             },
2026-06-19T05:17:21.6990592Z             {
2026-06-19T05:17:21.6990696Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6990783Z               "line": 190
2026-06-19T05:17:21.6990853Z             },
2026-06-19T05:17:21.6990930Z             {
2026-06-19T05:17:21.6991035Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6991126Z               "line": 250
2026-06-19T05:17:21.6991206Z             },
2026-06-19T05:17:21.6991287Z             {
2026-06-19T05:17:21.6991393Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6991474Z               "line": 280
2026-06-19T05:17:21.6991554Z             },
2026-06-19T05:17:21.6991631Z             {
2026-06-19T05:17:21.6991745Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.6991831Z               "line": 291
2026-06-19T05:17:21.6992009Z             },
2026-06-19T05:17:21.6992093Z             {
2026-06-19T05:17:21.6992193Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.6992280Z               "line": 1184
2026-06-19T05:17:21.6992356Z             }
2026-06-19T05:17:21.6992441Z           ]
2026-06-19T05:17:21.6992522Z         },
2026-06-19T05:17:21.6992595Z         "int": {
2026-06-19T05:17:21.6992685Z           "complete": true,
2026-06-19T05:17:21.6992765Z           "evidence": [
2026-06-19T05:17:21.6992948Z             {
2026-06-19T05:17:21.6993075Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-19T05:17:21.6993155Z               "line": 18
2026-06-19T05:17:21.6993236Z             }
2026-06-19T05:17:21.6993317Z           ]
2026-06-19T05:17:21.6993402Z         },
2026-06-19T05:17:21.6993482Z         "unit": {
2026-06-19T05:17:21.6993573Z           "complete": true,
2026-06-19T05:17:21.6993655Z           "evidence": [
2026-06-19T05:17:21.6993740Z             {
2026-06-19T05:17:21.6993873Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.6993945Z               "line": 364
2026-06-19T05:17:21.6994026Z             },
2026-06-19T05:17:21.6994102Z             {
2026-06-19T05:17:21.6994212Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.6994298Z               "line": 416
2026-06-19T05:17:21.6994379Z             },
2026-06-19T05:17:21.6994459Z             {
2026-06-19T05:17:21.6994561Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.6994646Z               "line": 426
2026-06-19T05:17:21.6994727Z             },
2026-06-19T05:17:21.6994803Z             {
2026-06-19T05:17:21.6994928Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6995017Z               "line": 436
2026-06-19T05:17:21.6995103Z             },
2026-06-19T05:17:21.6995176Z             {
2026-06-19T05:17:21.6995290Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6995375Z               "line": 456
2026-06-19T05:17:21.6995452Z             },
2026-06-19T05:17:21.6995534Z             {
2026-06-19T05:17:21.6995647Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6995727Z               "line": 478
2026-06-19T05:17:21.6995808Z             },
2026-06-19T05:17:21.6995884Z             {
2026-06-19T05:17:21.6995997Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6996082Z               "line": 491
2026-06-19T05:17:21.6996164Z             },
2026-06-19T05:17:21.6996235Z             {
2026-06-19T05:17:21.6996344Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:17:21.6996425Z               "line": 502
2026-06-19T05:17:21.6996512Z             },
2026-06-19T05:17:21.6996593Z             {
2026-06-19T05:17:21.6996706Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:17:21.6996793Z               "line": 108
2026-06-19T05:17:21.6996879Z             },
2026-06-19T05:17:21.6996960Z             {
2026-06-19T05:17:21.6997079Z               "path": "crates/spt-term/src/digest.rs",
2026-06-19T05:17:21.6997170Z               "line": 119
2026-06-19T05:17:21.6997250Z             },
2026-06-19T05:17:21.6997331Z             {
2026-06-19T05:17:21.6997442Z               "path": "crates/spt-term/src/digest.rs",
2026-06-19T05:17:21.6997528Z               "line": 127
2026-06-19T05:17:21.6997613Z             },
2026-06-19T05:17:21.6997699Z             {
2026-06-19T05:17:21.6997819Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6997908Z               "line": 474
2026-06-19T05:17:21.6997990Z             },
2026-06-19T05:17:21.6998076Z             {
2026-06-19T05:17:21.6998185Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6998276Z               "line": 501
2026-06-19T05:17:21.6998358Z             },
2026-06-19T05:17:21.6998439Z             {
2026-06-19T05:17:21.6998551Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6998718Z               "line": 520
2026-06-19T05:17:21.6998805Z             },
2026-06-19T05:17:21.6998880Z             {
2026-06-19T05:17:21.6999082Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6999163Z               "line": 535
2026-06-19T05:17:21.6999252Z             },
2026-06-19T05:17:21.6999334Z             {
2026-06-19T05:17:21.6999448Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.6999533Z               "line": 561
2026-06-19T05:17:21.6999711Z             },
2026-06-19T05:17:21.6999800Z             {
2026-06-19T05:17:21.6999910Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7000002Z               "line": 581
2026-06-19T05:17:21.7000082Z             },
2026-06-19T05:17:21.7000158Z             {
2026-06-19T05:17:21.7000273Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7000355Z               "line": 591
2026-06-19T05:17:21.7000439Z             },
2026-06-19T05:17:21.7000520Z             {
2026-06-19T05:17:21.7000641Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7000726Z               "line": 683
2026-06-19T05:17:21.7000806Z             },
2026-06-19T05:17:21.7000891Z             {
2026-06-19T05:17:21.7001001Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.7001085Z               "line": 881
2026-06-19T05:17:21.7001166Z             },
2026-06-19T05:17:21.7001247Z             {
2026-06-19T05:17:21.7001357Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7001442Z               "line": 9597
2026-06-19T05:17:21.7001523Z             }
2026-06-19T05:17:21.7001605Z           ]
2026-06-19T05:17:21.7001681Z         }
2026-06-19T05:17:21.7001752Z       }
2026-06-19T05:17:21.7001833Z     },
2026-06-19T05:17:21.7001915Z     {
2026-06-19T05:17:21.7001996Z       "id": "REQ-TERM-5",
2026-06-19T05:17:21.7003470Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-19T05:17:21.7003579Z       "requiredStages": [
2026-06-19T05:17:21.7003659Z         "doc",
2026-06-19T05:17:21.7003748Z         "impl",
2026-06-19T05:17:21.7003830Z         "unit",
2026-06-19T05:17:21.7003910Z         "int"
2026-06-19T05:17:21.7003990Z       ],
2026-06-19T05:17:21.7004075Z       "stages": {
2026-06-19T05:17:21.7004152Z         "doc": {
2026-06-19T05:17:21.7004229Z           "complete": true,
2026-06-19T05:17:21.7004324Z           "evidence": [
2026-06-19T05:17:21.7004404Z             {
2026-06-19T05:17:21.7004505Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.7004582Z               "line": 189
2026-06-19T05:17:21.7004662Z             }
2026-06-19T05:17:21.7004743Z           ]
2026-06-19T05:17:21.7004820Z         },
2026-06-19T05:17:21.7004911Z         "impl": {
2026-06-19T05:17:21.7004991Z           "complete": true,
2026-06-19T05:17:21.7005077Z           "evidence": [
2026-06-19T05:17:21.7005159Z             {
2026-06-19T05:17:21.7005282Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7005368Z               "line": 75
2026-06-19T05:17:21.7005460Z             },
2026-06-19T05:17:21.7005540Z             {
2026-06-19T05:17:21.7005645Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7005731Z               "line": 131
2026-06-19T05:17:21.7005812Z             },
2026-06-19T05:17:21.7005897Z             {
2026-06-19T05:17:21.7005997Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7006085Z               "line": 22
2026-06-19T05:17:21.7006282Z             },
2026-06-19T05:17:21.7006358Z             {
2026-06-19T05:17:21.7006468Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7006547Z               "line": 87
2026-06-19T05:17:21.7006637Z             },
2026-06-19T05:17:21.7006719Z             {
2026-06-19T05:17:21.7006820Z               "path": "crates/spt-term/src/digest.rs",
2026-06-19T05:17:21.7006905Z               "line": 30
2026-06-19T05:17:21.7006986Z             },
2026-06-19T05:17:21.7007120Z             {
2026-06-19T05:17:21.7007238Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7007315Z               "line": 103
2026-06-19T05:17:21.7007397Z             },
2026-06-19T05:17:21.7007477Z             {
2026-06-19T05:17:21.7007591Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7007669Z               "line": 167
2026-06-19T05:17:21.7007744Z             },
2026-06-19T05:17:21.7007820Z             {
2026-06-19T05:17:21.7007940Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7008026Z               "line": 434
2026-06-19T05:17:21.7008107Z             },
2026-06-19T05:17:21.7008183Z             {
2026-06-19T05:17:21.7008283Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7008374Z               "line": 5507
2026-06-19T05:17:21.7008454Z             },
2026-06-19T05:17:21.7008530Z             {
2026-06-19T05:17:21.7008632Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7008722Z               "line": 5814
2026-06-19T05:17:21.7008797Z             }
2026-06-19T05:17:21.7008879Z           ]
2026-06-19T05:17:21.7009042Z         },
2026-06-19T05:17:21.7009116Z         "int": {
2026-06-19T05:17:21.7009216Z           "complete": true,
2026-06-19T05:17:21.7009297Z           "evidence": [
2026-06-19T05:17:21.7009365Z             {
2026-06-19T05:17:21.7009516Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-19T05:17:21.7009598Z               "line": 17
2026-06-19T05:17:21.7009679Z             }
2026-06-19T05:17:21.7009756Z           ]
2026-06-19T05:17:21.7009836Z         },
2026-06-19T05:17:21.7009918Z         "unit": {
2026-06-19T05:17:21.7009999Z           "complete": true,
2026-06-19T05:17:21.7010094Z           "evidence": [
2026-06-19T05:17:21.7010165Z             {
2026-06-19T05:17:21.7010281Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7010370Z               "line": 375
2026-06-19T05:17:21.7010455Z             },
2026-06-19T05:17:21.7010538Z             {
2026-06-19T05:17:21.7010642Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7010728Z               "line": 162
2026-06-19T05:17:21.7010809Z             },
2026-06-19T05:17:21.7010891Z             {
2026-06-19T05:17:21.7010995Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7011085Z               "line": 179
2026-06-19T05:17:21.7011167Z             },
2026-06-19T05:17:21.7011249Z             {
2026-06-19T05:17:21.7011361Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7011437Z               "line": 201
2026-06-19T05:17:21.7011523Z             },
2026-06-19T05:17:21.7011604Z             {
2026-06-19T05:17:21.7011707Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7011792Z               "line": 212
2026-06-19T05:17:21.7011874Z             },
2026-06-19T05:17:21.7011956Z             {
2026-06-19T05:17:21.7012059Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:17:21.7012145Z               "line": 223
2026-06-19T05:17:21.7012227Z             },
2026-06-19T05:17:21.7012317Z             {
2026-06-19T05:17:21.7012436Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7012518Z               "line": 1322
2026-06-19T05:17:21.7012604Z             },
2026-06-19T05:17:21.7012684Z             {
2026-06-19T05:17:21.7012804Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7012998Z               "line": 1365
2026-06-19T05:17:21.7013080Z             },
2026-06-19T05:17:21.7013162Z             {
2026-06-19T05:17:21.7013271Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7013347Z               "line": 606
2026-06-19T05:17:21.7013429Z             },
2026-06-19T05:17:21.7013514Z             {
2026-06-19T05:17:21.7013633Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7013720Z               "line": 634
2026-06-19T05:17:21.7013890Z             },
2026-06-19T05:17:21.7013972Z             {
2026-06-19T05:17:21.7014092Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7014167Z               "line": 646
2026-06-19T05:17:21.7014252Z             },
2026-06-19T05:17:21.7014337Z             {
2026-06-19T05:17:21.7014443Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7014531Z               "line": 669
2026-06-19T05:17:21.7014607Z             },
2026-06-19T05:17:21.7014688Z             {
2026-06-19T05:17:21.7014784Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7014869Z               "line": 8308
2026-06-19T05:17:21.7014959Z             },
2026-06-19T05:17:21.7015037Z             {
2026-06-19T05:17:21.7015137Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7015222Z               "line": 8366
2026-06-19T05:17:21.7015308Z             }
2026-06-19T05:17:21.7015385Z           ]
2026-06-19T05:17:21.7015466Z         }
2026-06-19T05:17:21.7015561Z       }
2026-06-19T05:17:21.7015642Z     },
2026-06-19T05:17:21.7015719Z     {
2026-06-19T05:17:21.7015804Z       "id": "REQ-TERM-6",
2026-06-19T05:17:21.7016875Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-19T05:17:21.7016976Z       "requiredStages": [
2026-06-19T05:17:21.7017056Z         "impl",
2026-06-19T05:17:21.7017136Z         "unit",
2026-06-19T05:17:21.7017216Z         "int"
2026-06-19T05:17:21.7017303Z       ],
2026-06-19T05:17:21.7017390Z       "stages": {
2026-06-19T05:17:21.7017470Z         "doc": {
2026-06-19T05:17:21.7017565Z           "complete": false,
2026-06-19T05:17:21.7017652Z           "evidence": []
2026-06-19T05:17:21.7017737Z         },
2026-06-19T05:17:21.7017808Z         "impl": {
2026-06-19T05:17:21.7017899Z           "complete": true,
2026-06-19T05:17:21.7017999Z           "evidence": [
2026-06-19T05:17:21.7018071Z             {
2026-06-19T05:17:21.7018190Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7018276Z               "line": 132
2026-06-19T05:17:21.7018352Z             },
2026-06-19T05:17:21.7018433Z             {
2026-06-19T05:17:21.7018548Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7018643Z               "line": 187
2026-06-19T05:17:21.7018719Z             },
2026-06-19T05:17:21.7018805Z             {
2026-06-19T05:17:21.7018920Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:17:21.7019081Z               "line": 17
2026-06-19T05:17:21.7019163Z             },
2026-06-19T05:17:21.7019240Z             {
2026-06-19T05:17:21.7019362Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:17:21.7019449Z               "line": 96
2026-06-19T05:17:21.7019531Z             },
2026-06-19T05:17:21.7019611Z             {
2026-06-19T05:17:21.7019729Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7019819Z               "line": 319
2026-06-19T05:17:21.7019901Z             },
2026-06-19T05:17:21.7019982Z             {
2026-06-19T05:17:21.7020096Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7020192Z               "line": 396
2026-06-19T05:17:21.7020386Z             }
2026-06-19T05:17:21.7020473Z           ]
2026-06-19T05:17:21.7020545Z         },
2026-06-19T05:17:21.7020635Z         "int": {
2026-06-19T05:17:21.7020720Z           "complete": true,
2026-06-19T05:17:21.7020798Z           "evidence": [
2026-06-19T05:17:21.7020874Z             {
2026-06-19T05:17:21.7021015Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-19T05:17:21.7021113Z               "line": 18
2026-06-19T05:17:21.7021189Z             }
2026-06-19T05:17:21.7021374Z           ]
2026-06-19T05:17:21.7021456Z         },
2026-06-19T05:17:21.7021532Z         "unit": {
2026-06-19T05:17:21.7021627Z           "complete": true,
2026-06-19T05:17:21.7021708Z           "evidence": [
2026-06-19T05:17:21.7021785Z             {
2026-06-19T05:17:21.7021893Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:17:21.7021983Z               "line": 126
2026-06-19T05:17:21.7022069Z             },
2026-06-19T05:17:21.7022150Z             {
2026-06-19T05:17:21.7022276Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:17:21.7022357Z               "line": 141
2026-06-19T05:17:21.7022439Z             },
2026-06-19T05:17:21.7022521Z             {
2026-06-19T05:17:21.7022634Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:17:21.7022720Z               "line": 157
2026-06-19T05:17:21.7022797Z             },
2026-06-19T05:17:21.7022877Z             {
2026-06-19T05:17:21.7022986Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:17:21.7023083Z               "line": 175
2026-06-19T05:17:21.7023164Z             },
2026-06-19T05:17:21.7023253Z             {
2026-06-19T05:17:21.7023364Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7023440Z               "line": 738
2026-06-19T05:17:21.7023512Z             },
2026-06-19T05:17:21.7023592Z             {
2026-06-19T05:17:21.7023713Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7023807Z               "line": 759
2026-06-19T05:17:21.7023888Z             },
2026-06-19T05:17:21.7023970Z             {
2026-06-19T05:17:21.7024075Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:17:21.7024155Z               "line": 722
2026-06-19T05:17:21.7024236Z             }
2026-06-19T05:17:21.7024313Z           ]
2026-06-19T05:17:21.7024394Z         }
2026-06-19T05:17:21.7024474Z       }
2026-06-19T05:17:21.7024556Z     },
2026-06-19T05:17:21.7024638Z     {
2026-06-19T05:17:21.7024732Z       "id": "REQ-TERM-7",
2026-06-19T05:17:21.7025835Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-19T05:17:21.7025936Z       "requiredStages": [
2026-06-19T05:17:21.7026012Z         "impl",
2026-06-19T05:17:21.7026092Z         "unit",
2026-06-19T05:17:21.7026178Z         "int"
2026-06-19T05:17:21.7026260Z       ],
2026-06-19T05:17:21.7026335Z       "stages": {
2026-06-19T05:17:21.7026416Z         "doc": {
2026-06-19T05:17:21.7026497Z           "complete": false,
2026-06-19T05:17:21.7026580Z           "evidence": []
2026-06-19T05:17:21.7026660Z         },
2026-06-19T05:17:21.7026736Z         "impl": {
2026-06-19T05:17:21.7026822Z           "complete": true,
2026-06-19T05:17:21.7026914Z           "evidence": [
2026-06-19T05:17:21.7026998Z             {
2026-06-19T05:17:21.7027113Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7027195Z               "line": 133
2026-06-19T05:17:21.7027266Z             },
2026-06-19T05:17:21.7027346Z             {
2026-06-19T05:17:21.7027445Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7027616Z               "line": 326
2026-06-19T05:17:21.7027696Z             },
2026-06-19T05:17:21.7027781Z             {
2026-06-19T05:17:21.7027892Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:17:21.7027968Z               "line": 15
2026-06-19T05:17:21.7028044Z             },
2026-06-19T05:17:21.7028120Z             {
2026-06-19T05:17:21.7028231Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:17:21.7028325Z               "line": 32
2026-06-19T05:17:21.7028401Z             },
2026-06-19T05:17:21.7028550Z             {
2026-06-19T05:17:21.7028664Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:17:21.7028745Z               "line": 49
2026-06-19T05:17:21.7028822Z             },
2026-06-19T05:17:21.7028902Z             {
2026-06-19T05:17:21.7029123Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7029213Z               "line": 286
2026-06-19T05:17:21.7029284Z             },
2026-06-19T05:17:21.7029369Z             {
2026-06-19T05:17:21.7029485Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7029570Z               "line": 320
2026-06-19T05:17:21.7029656Z             }
2026-06-19T05:17:21.7029743Z           ]
2026-06-19T05:17:21.7029823Z         },
2026-06-19T05:17:21.7029903Z         "int": {
2026-06-19T05:17:21.7029985Z           "complete": true,
2026-06-19T05:17:21.7030067Z           "evidence": [
2026-06-19T05:17:21.7032947Z             {
2026-06-19T05:17:21.7033137Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-19T05:17:21.7033246Z               "line": 19
2026-06-19T05:17:21.7033319Z             }
2026-06-19T05:17:21.7033409Z           ]
2026-06-19T05:17:21.7033484Z         },
2026-06-19T05:17:21.7033566Z         "unit": {
2026-06-19T05:17:21.7033648Z           "complete": true,
2026-06-19T05:17:21.7033734Z           "evidence": [
2026-06-19T05:17:21.7033813Z             {
2026-06-19T05:17:21.7033929Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7034014Z               "line": 455
2026-06-19T05:17:21.7034091Z             },
2026-06-19T05:17:21.7034172Z             {
2026-06-19T05:17:21.7034287Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:17:21.7034372Z               "line": 566
2026-06-19T05:17:21.7034457Z             },
2026-06-19T05:17:21.7034535Z             {
2026-06-19T05:17:21.7034649Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:17:21.7034730Z               "line": 58
2026-06-19T05:17:21.7034816Z             },
2026-06-19T05:17:21.7034893Z             {
2026-06-19T05:17:21.7034992Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:17:21.7035077Z               "line": 77
2026-06-19T05:17:21.7035155Z             },
2026-06-19T05:17:21.7035241Z             {
2026-06-19T05:17:21.7035339Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:17:21.7035425Z               "line": 87
2026-06-19T05:17:21.7035510Z             },
2026-06-19T05:17:21.7035591Z             {
2026-06-19T05:17:21.7035704Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:17:21.7035789Z               "line": 94
2026-06-19T05:17:21.7035866Z             },
2026-06-19T05:17:21.7035938Z             {
2026-06-19T05:17:21.7036061Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7036143Z               "line": 691
2026-06-19T05:17:21.7036224Z             },
2026-06-19T05:17:21.7036296Z             {
2026-06-19T05:17:21.7036409Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:17:21.7036501Z               "line": 716
2026-06-19T05:17:21.7036581Z             }
2026-06-19T05:17:21.7036661Z           ]
2026-06-19T05:17:21.7036743Z         }
2026-06-19T05:17:21.7036816Z       }
2026-06-19T05:17:21.7036891Z     },
2026-06-19T05:17:21.7036972Z     {
2026-06-19T05:17:21.7037067Z       "id": "REQ-UPD-1",
2026-06-19T05:17:21.7037173Z       "title": "Peer-propagated update over P2P",
2026-06-19T05:17:21.7037262Z       "requiredStages": [
2026-06-19T05:17:21.7037493Z         "impl",
2026-06-19T05:17:21.7037572Z         "unit",
2026-06-19T05:17:21.7037654Z         "int"
2026-06-19T05:17:21.7037736Z       ],
2026-06-19T05:17:21.7037822Z       "stages": {
2026-06-19T05:17:21.7037892Z         "doc": {
2026-06-19T05:17:21.7037986Z           "complete": false,
2026-06-19T05:17:21.7038072Z           "evidence": []
2026-06-19T05:17:21.7038148Z         },
2026-06-19T05:17:21.7038242Z         "impl": {
2026-06-19T05:17:21.7038327Z           "complete": true,
2026-06-19T05:17:21.7038505Z           "evidence": [
2026-06-19T05:17:21.7038585Z             {
2026-06-19T05:17:21.7038709Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7038796Z               "line": 28
2026-06-19T05:17:21.7038871Z             },
2026-06-19T05:17:21.7039054Z             {
2026-06-19T05:17:21.7039177Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7039257Z               "line": 103
2026-06-19T05:17:21.7039339Z             },
2026-06-19T05:17:21.7039420Z             {
2026-06-19T05:17:21.7039539Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7039624Z               "line": 342
2026-06-19T05:17:21.7039707Z             },
2026-06-19T05:17:21.7039782Z             {
2026-06-19T05:17:21.7039896Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7039978Z               "line": 22
2026-06-19T05:17:21.7040059Z             },
2026-06-19T05:17:21.7040144Z             {
2026-06-19T05:17:21.7040249Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7040337Z               "line": 207
2026-06-19T05:17:21.7040416Z             },
2026-06-19T05:17:21.7040497Z             {
2026-06-19T05:17:21.7040603Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7040684Z               "line": 283
2026-06-19T05:17:21.7040764Z             },
2026-06-19T05:17:21.7040844Z             {
2026-06-19T05:17:21.7040964Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7041041Z               "line": 340
2026-06-19T05:17:21.7041121Z             },
2026-06-19T05:17:21.7041201Z             {
2026-06-19T05:17:21.7041317Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.7041398Z               "line": 37
2026-06-19T05:17:21.7041478Z             }
2026-06-19T05:17:21.7041555Z           ]
2026-06-19T05:17:21.7041632Z         },
2026-06-19T05:17:21.7041712Z         "int": {
2026-06-19T05:17:21.7041803Z           "complete": true,
2026-06-19T05:17:21.7041888Z           "evidence": [
2026-06-19T05:17:21.7041961Z             {
2026-06-19T05:17:21.7042080Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:17:21.7042155Z               "line": 207
2026-06-19T05:17:21.7042238Z             },
2026-06-19T05:17:21.7042309Z             {
2026-06-19T05:17:21.7042423Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:17:21.7042514Z               "line": 1081
2026-06-19T05:17:21.7042600Z             }
2026-06-19T05:17:21.7042680Z           ]
2026-06-19T05:17:21.7042752Z         },
2026-06-19T05:17:21.7042833Z         "unit": {
2026-06-19T05:17:21.7042924Z           "complete": true,
2026-06-19T05:17:21.7043004Z           "evidence": [
2026-06-19T05:17:21.7043089Z             {
2026-06-19T05:17:21.7043204Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7043289Z               "line": 490
2026-06-19T05:17:21.7043373Z             },
2026-06-19T05:17:21.7043449Z             {
2026-06-19T05:17:21.7043564Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7043641Z               "line": 616
2026-06-19T05:17:21.7043720Z             },
2026-06-19T05:17:21.7043797Z             {
2026-06-19T05:17:21.7043922Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:17:21.7044007Z               "line": 277
2026-06-19T05:17:21.7044088Z             },
2026-06-19T05:17:21.7044170Z             {
2026-06-19T05:17:21.7044388Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.7044471Z               "line": 124
2026-06-19T05:17:21.7044556Z             },
2026-06-19T05:17:21.7044637Z             {
2026-06-19T05:17:21.7044751Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.7044833Z               "line": 200
2026-06-19T05:17:21.7044913Z             }
2026-06-19T05:17:21.7044994Z           ]
2026-06-19T05:17:21.7045070Z         }
2026-06-19T05:17:21.7045246Z       }
2026-06-19T05:17:21.7045332Z     },
2026-06-19T05:17:21.7045410Z     {
2026-06-19T05:17:21.7045501Z       "id": "REQ-UPD-2",
2026-06-19T05:17:21.7045642Z       "title": "All binaries signature-verified before handoff",
2026-06-19T05:17:21.7045734Z       "requiredStages": [
2026-06-19T05:17:21.7045816Z         "impl",
2026-06-19T05:17:21.7045900Z         "unit"
2026-06-19T05:17:21.7045980Z       ],
2026-06-19T05:17:21.7046061Z       "stages": {
2026-06-19T05:17:21.7046142Z         "doc": {
2026-06-19T05:17:21.7046245Z           "complete": false,
2026-06-19T05:17:21.7046330Z           "evidence": []
2026-06-19T05:17:21.7046412Z         },
2026-06-19T05:17:21.7046498Z         "impl": {
2026-06-19T05:17:21.7046587Z           "complete": true,
2026-06-19T05:17:21.7046673Z           "evidence": [
2026-06-19T05:17:21.7046751Z             {
2026-06-19T05:17:21.7046875Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7046960Z               "line": 343
2026-06-19T05:17:21.7047032Z             },
2026-06-19T05:17:21.7047113Z             {
2026-06-19T05:17:21.7047222Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7047318Z               "line": 476
2026-06-19T05:17:21.7047395Z             },
2026-06-19T05:17:21.7047479Z             {
2026-06-19T05:17:21.7047584Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7047671Z               "line": 29
2026-06-19T05:17:21.7047752Z             },
2026-06-19T05:17:21.7047832Z             {
2026-06-19T05:17:21.7047942Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7048029Z               "line": 271
2026-06-19T05:17:21.7048114Z             },
2026-06-19T05:17:21.7048195Z             {
2026-06-19T05:17:21.7048297Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7048382Z               "line": 288
2026-06-19T05:17:21.7048461Z             },
2026-06-19T05:17:21.7048537Z             {
2026-06-19T05:17:21.7048656Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7048732Z               "line": 408
2026-06-19T05:17:21.7048811Z             },
2026-06-19T05:17:21.7048896Z             {
2026-06-19T05:17:21.7049084Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7049159Z               "line": 558
2026-06-19T05:17:21.7049231Z             },
2026-06-19T05:17:21.7049313Z             {
2026-06-19T05:17:21.7049422Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7049507Z               "line": 155
2026-06-19T05:17:21.7049584Z             }
2026-06-19T05:17:21.7049661Z           ]
2026-06-19T05:17:21.7049737Z         },
2026-06-19T05:17:21.7049817Z         "int": {
2026-06-19T05:17:21.7049904Z           "complete": false,
2026-06-19T05:17:21.7049989Z           "evidence": []
2026-06-19T05:17:21.7050066Z         },
2026-06-19T05:17:21.7050147Z         "unit": {
2026-06-19T05:17:21.7050243Z           "complete": true,
2026-06-19T05:17:21.7050318Z           "evidence": [
2026-06-19T05:17:21.7050399Z             {
2026-06-19T05:17:21.7050499Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7050577Z               "line": 750
2026-06-19T05:17:21.7050656Z             },
2026-06-19T05:17:21.7050738Z             {
2026-06-19T05:17:21.7050844Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7050930Z               "line": 811
2026-06-19T05:17:21.7051004Z             },
2026-06-19T05:17:21.7051202Z             {
2026-06-19T05:17:21.7051319Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7051404Z               "line": 825
2026-06-19T05:17:21.7051485Z             },
2026-06-19T05:17:21.7051562Z             {
2026-06-19T05:17:21.7051667Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7051752Z               "line": 841
2026-06-19T05:17:21.7051834Z             },
2026-06-19T05:17:21.7051911Z             {
2026-06-19T05:17:21.7052014Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7052192Z               "line": 932
2026-06-19T05:17:21.7052273Z             },
2026-06-19T05:17:21.7052353Z             {
2026-06-19T05:17:21.7052463Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7052544Z               "line": 414
2026-06-19T05:17:21.7052620Z             },
2026-06-19T05:17:21.7052701Z             {
2026-06-19T05:17:21.7052803Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7052897Z               "line": 427
2026-06-19T05:17:21.7052973Z             },
2026-06-19T05:17:21.7053049Z             {
2026-06-19T05:17:21.7053169Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:17:21.7053254Z               "line": 410
2026-06-19T05:17:21.7053336Z             }
2026-06-19T05:17:21.7053412Z           ]
2026-06-19T05:17:21.7053498Z         }
2026-06-19T05:17:21.7053583Z       }
2026-06-19T05:17:21.7053668Z     },
2026-06-19T05:17:21.7053749Z     {
2026-06-19T05:17:21.7053844Z       "id": "REQ-UPD-3",
2026-06-19T05:17:21.7054014Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-19T05:17:21.7054100Z       "requiredStages": [
2026-06-19T05:17:21.7054182Z         "impl",
2026-06-19T05:17:21.7054262Z         "unit",
2026-06-19T05:17:21.7054343Z         "int"
2026-06-19T05:17:21.7054429Z       ],
2026-06-19T05:17:21.7054510Z       "stages": {
2026-06-19T05:17:21.7054586Z         "doc": {
2026-06-19T05:17:21.7054662Z           "complete": false,
2026-06-19T05:17:21.7054759Z           "evidence": []
2026-06-19T05:17:21.7054830Z         },
2026-06-19T05:17:21.7054906Z         "impl": {
2026-06-19T05:17:21.7054996Z           "complete": true,
2026-06-19T05:17:21.7055078Z           "evidence": [
2026-06-19T05:17:21.7055163Z             {
2026-06-19T05:17:21.7055277Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7055369Z               "line": 40
2026-06-19T05:17:21.7055449Z             },
2026-06-19T05:17:21.7055540Z             {
2026-06-19T05:17:21.7055660Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7055746Z               "line": 87
2026-06-19T05:17:21.7055830Z             },
2026-06-19T05:17:21.7055902Z             {
2026-06-19T05:17:21.7056008Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:17:21.7056093Z               "line": 994
2026-06-19T05:17:21.7056179Z             },
2026-06-19T05:17:21.7056261Z             {
2026-06-19T05:17:21.7056366Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:17:21.7056450Z               "line": 1160
2026-06-19T05:17:21.7056531Z             },
2026-06-19T05:17:21.7056612Z             {
2026-06-19T05:17:21.7056721Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7056814Z               "line": 26
2026-06-19T05:17:21.7056895Z             },
2026-06-19T05:17:21.7056972Z             {
2026-06-19T05:17:21.7057078Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7057157Z               "line": 114
2026-06-19T05:17:21.7057243Z             },
2026-06-19T05:17:21.7057311Z             {
2026-06-19T05:17:21.7057416Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7057500Z               "line": 246
2026-06-19T05:17:21.7057578Z             },
2026-06-19T05:17:21.7057659Z             {
2026-06-19T05:17:21.7057764Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7057844Z               "line": 2318
2026-06-19T05:17:21.7057998Z             }
2026-06-19T05:17:21.7058079Z           ]
2026-06-19T05:17:21.7058159Z         },
2026-06-19T05:17:21.7058241Z         "int": {
2026-06-19T05:17:21.7058327Z           "complete": true,
2026-06-19T05:17:21.7058407Z           "evidence": [
2026-06-19T05:17:21.7058488Z             {
2026-06-19T05:17:21.7058599Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-19T05:17:21.7058683Z               "line": 58
2026-06-19T05:17:21.7058750Z             }
2026-06-19T05:17:21.7058899Z           ]
2026-06-19T05:17:21.7059059Z         },
2026-06-19T05:17:21.7059139Z         "unit": {
2026-06-19T05:17:21.7059236Z           "complete": true,
2026-06-19T05:17:21.7059316Z           "evidence": [
2026-06-19T05:17:21.7059391Z             {
2026-06-19T05:17:21.7059510Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7059596Z               "line": 532
2026-06-19T05:17:21.7059672Z             },
2026-06-19T05:17:21.7059753Z             {
2026-06-19T05:17:21.7059878Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7059954Z               "line": 584
2026-06-19T05:17:21.7060034Z             },
2026-06-19T05:17:21.7060120Z             {
2026-06-19T05:17:21.7060235Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7060321Z               "line": 652
2026-06-19T05:17:21.7060401Z             },
2026-06-19T05:17:21.7060483Z             {
2026-06-19T05:17:21.7060602Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:17:21.7060692Z               "line": 1102
2026-06-19T05:17:21.7060774Z             },
2026-06-19T05:17:21.7060856Z             {
2026-06-19T05:17:21.7060969Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7061045Z               "line": 271
2026-06-19T05:17:21.7061127Z             },
2026-06-19T05:17:21.7061203Z             {
2026-06-19T05:17:21.7061312Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7061404Z               "line": 295
2026-06-19T05:17:21.7061485Z             },
2026-06-19T05:17:21.7061564Z             {
2026-06-19T05:17:21.7061675Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7061762Z               "line": 316
2026-06-19T05:17:21.7061842Z             },
2026-06-19T05:17:21.7061922Z             {
2026-06-19T05:17:21.7062041Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7062118Z               "line": 332
2026-06-19T05:17:21.7062203Z             }
2026-06-19T05:17:21.7062284Z           ]
2026-06-19T05:17:21.7062360Z         }
2026-06-19T05:17:21.7062437Z       }
2026-06-19T05:17:21.7062509Z     },
2026-06-19T05:17:21.7062594Z     {
2026-06-19T05:17:21.7062680Z       "id": "REQ-UPD-4",
2026-06-19T05:17:21.7062857Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-19T05:17:21.7062942Z       "requiredStages": [
2026-06-19T05:17:21.7063023Z         "impl",
2026-06-19T05:17:21.7063100Z         "unit"
2026-06-19T05:17:21.7063185Z       ],
2026-06-19T05:17:21.7063276Z       "stages": {
2026-06-19T05:17:21.7063348Z         "doc": {
2026-06-19T05:17:21.7063448Z           "complete": false,
2026-06-19T05:17:21.7063533Z           "evidence": []
2026-06-19T05:17:21.7063614Z         },
2026-06-19T05:17:21.7063706Z         "impl": {
2026-06-19T05:17:21.7063786Z           "complete": true,
2026-06-19T05:17:21.7063876Z           "evidence": [
2026-06-19T05:17:21.7063958Z             {
2026-06-19T05:17:21.7064077Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7064162Z               "line": 41
2026-06-19T05:17:21.7064247Z             },
2026-06-19T05:17:21.7064324Z             {
2026-06-19T05:17:21.7064446Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7064531Z               "line": 88
2026-06-19T05:17:21.7064607Z             },
2026-06-19T05:17:21.7064689Z             {
2026-06-19T05:17:21.7064794Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:17:21.7064985Z               "line": 23
2026-06-19T05:17:21.7065075Z             },
2026-06-19T05:17:21.7065146Z             {
2026-06-19T05:17:21.7065251Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:17:21.7065323Z               "line": 56
2026-06-19T05:17:21.7065399Z             },
2026-06-19T05:17:21.7065480Z             {
2026-06-19T05:17:21.7065591Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:17:21.7065666Z               "line": 77
2026-06-19T05:17:21.7065842Z             },
2026-06-19T05:17:21.7065925Z             {
2026-06-19T05:17:21.7066029Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:17:21.7066114Z               "line": 236
2026-06-19T05:17:21.7066196Z             },
2026-06-19T05:17:21.7066272Z             {
2026-06-19T05:17:21.7066386Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:17:21.7066472Z               "line": 108
2026-06-19T05:17:21.7066554Z             },
2026-06-19T05:17:21.7066639Z             {
2026-06-19T05:17:21.7066744Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.7066821Z               "line": 258
2026-06-19T05:17:21.7066898Z             },
2026-06-19T05:17:21.7066987Z             {
2026-06-19T05:17:21.7067086Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7067176Z               "line": 2317
2026-06-19T05:17:21.7067257Z             }
2026-06-19T05:17:21.7067341Z           ]
2026-06-19T05:17:21.7067412Z         },
2026-06-19T05:17:21.7067489Z         "int": {
2026-06-19T05:17:21.7067576Z           "complete": false,
2026-06-19T05:17:21.7067656Z           "evidence": []
2026-06-19T05:17:21.7067736Z         },
2026-06-19T05:17:21.7067823Z         "unit": {
2026-06-19T05:17:21.7067905Z           "complete": true,
2026-06-19T05:17:21.7067990Z           "evidence": [
2026-06-19T05:17:21.7068065Z             {
2026-06-19T05:17:21.7068181Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7068262Z               "line": 580
2026-06-19T05:17:21.7068342Z             },
2026-06-19T05:17:21.7068424Z             {
2026-06-19T05:17:21.7068544Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7068629Z               "line": 705
2026-06-19T05:17:21.7068714Z             },
2026-06-19T05:17:21.7068792Z             {
2026-06-19T05:17:21.7068905Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:17:21.7069077Z               "line": 384
2026-06-19T05:17:21.7069154Z             },
2026-06-19T05:17:21.7069234Z             {
2026-06-19T05:17:21.7069348Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:17:21.7069441Z               "line": 102
2026-06-19T05:17:21.7069526Z             },
2026-06-19T05:17:21.7069605Z             {
2026-06-19T05:17:21.7069719Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:17:21.7069796Z               "line": 123
2026-06-19T05:17:21.7069876Z             },
2026-06-19T05:17:21.7069965Z             {
2026-06-19T05:17:21.7070075Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:17:21.7070156Z               "line": 142
2026-06-19T05:17:21.7070228Z             },
2026-06-19T05:17:21.7070308Z             {
2026-06-19T05:17:21.7070409Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:17:21.7070490Z               "line": 556
2026-06-19T05:17:21.7070571Z             },
2026-06-19T05:17:21.7070652Z             {
2026-06-19T05:17:21.7070767Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:17:21.7070853Z               "line": 566
2026-06-19T05:17:21.7070932Z             },
2026-06-19T05:17:21.7071015Z             {
2026-06-19T05:17:21.7071115Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7071196Z               "line": 8061
2026-06-19T05:17:21.7071276Z             }
2026-06-19T05:17:21.7071349Z           ]
2026-06-19T05:17:21.7071430Z         }
2026-06-19T05:17:21.7071506Z       }
2026-06-19T05:17:21.7071711Z     },
2026-06-19T05:17:21.7071791Z     {
2026-06-19T05:17:21.7071882Z       "id": "REQ-UPD-5",
2026-06-19T05:17:21.7072022Z       "title": "spt-core ripple-updates registered adapters",
2026-06-19T05:17:21.7072120Z       "requiredStages": [
2026-06-19T05:17:21.7072192Z         "impl",
2026-06-19T05:17:21.7072274Z         "unit"
2026-06-19T05:17:21.7072355Z       ],
2026-06-19T05:17:21.7072440Z       "stages": {
2026-06-19T05:17:21.7072520Z         "doc": {
2026-06-19T05:17:21.7072611Z           "complete": false,
2026-06-19T05:17:21.7072806Z           "evidence": []
2026-06-19T05:17:21.7072887Z         },
2026-06-19T05:17:21.7072963Z         "impl": {
2026-06-19T05:17:21.7073045Z           "complete": true,
2026-06-19T05:17:21.7073125Z           "evidence": [
2026-06-19T05:17:21.7073206Z             {
2026-06-19T05:17:21.7073331Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7073417Z               "line": 27
2026-06-19T05:17:21.7073502Z             },
2026-06-19T05:17:21.7073603Z             {
2026-06-19T05:17:21.7073726Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7073807Z               "line": 87
2026-06-19T05:17:21.7073894Z             },
2026-06-19T05:17:21.7073975Z             {
2026-06-19T05:17:21.7074098Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7074179Z               "line": 145
2026-06-19T05:17:21.7074262Z             },
2026-06-19T05:17:21.7074341Z             {
2026-06-19T05:17:21.7074465Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7074542Z               "line": 492
2026-06-19T05:17:21.7074614Z             },
2026-06-19T05:17:21.7074698Z             {
2026-06-19T05:17:21.7074798Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7074884Z               "line": 546
2026-06-19T05:17:21.7074964Z             }
2026-06-19T05:17:21.7075049Z           ]
2026-06-19T05:17:21.7075124Z         },
2026-06-19T05:17:21.7075201Z         "int": {
2026-06-19T05:17:21.7075288Z           "complete": false,
2026-06-19T05:17:21.7075368Z           "evidence": []
2026-06-19T05:17:21.7075453Z         },
2026-06-19T05:17:21.7075535Z         "unit": {
2026-06-19T05:17:21.7075621Z           "complete": true,
2026-06-19T05:17:21.7075706Z           "evidence": [
2026-06-19T05:17:21.7075787Z             {
2026-06-19T05:17:21.7075917Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7076006Z               "line": 272
2026-06-19T05:17:21.7076102Z             },
2026-06-19T05:17:21.7076184Z             {
2026-06-19T05:17:21.7076303Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7076393Z               "line": 286
2026-06-19T05:17:21.7076475Z             },
2026-06-19T05:17:21.7076555Z             {
2026-06-19T05:17:21.7076674Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7076766Z               "line": 300
2026-06-19T05:17:21.7076847Z             },
2026-06-19T05:17:21.7076932Z             {
2026-06-19T05:17:21.7077056Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7077143Z               "line": 314
2026-06-19T05:17:21.7077227Z             },
2026-06-19T05:17:21.7077309Z             {
2026-06-19T05:17:21.7077429Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7077514Z               "line": 348
2026-06-19T05:17:21.7077594Z             },
2026-06-19T05:17:21.7077674Z             {
2026-06-19T05:17:21.7077789Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7077873Z               "line": 1012
2026-06-19T05:17:21.7077954Z             }
2026-06-19T05:17:21.7078039Z           ]
2026-06-19T05:17:21.7078111Z         }
2026-06-19T05:17:21.7078193Z       }
2026-06-19T05:17:21.7078273Z     },
2026-06-19T05:17:21.7078354Z     {
2026-06-19T05:17:21.7078446Z       "id": "REQ-UPD-6",
2026-06-19T05:17:21.7079318Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-19T05:17:21.7079512Z       "requiredStages": [
2026-06-19T05:17:21.7079594Z         "doc",
2026-06-19T05:17:21.7079677Z         "impl",
2026-06-19T05:17:21.7079762Z         "unit",
2026-06-19T05:17:21.7079841Z         "int"
2026-06-19T05:17:21.7080020Z       ],
2026-06-19T05:17:21.7080100Z       "stages": {
2026-06-19T05:17:21.7080179Z         "doc": {
2026-06-19T05:17:21.7080270Z           "complete": true,
2026-06-19T05:17:21.7080356Z           "evidence": [
2026-06-19T05:17:21.7080431Z             {
2026-06-19T05:17:21.7080553Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-19T05:17:21.7080635Z               "line": 3
2026-06-19T05:17:21.7080717Z             },
2026-06-19T05:17:21.7080793Z             {
2026-06-19T05:17:21.7080916Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-19T05:17:21.7080998Z               "line": 3
2026-06-19T05:17:21.7081094Z             },
2026-06-19T05:17:21.7081164Z             {
2026-06-19T05:17:21.7081318Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-19T05:17:21.7081403Z               "line": 3
2026-06-19T05:17:21.7081483Z             }
2026-06-19T05:17:21.7081565Z           ]
2026-06-19T05:17:21.7081647Z         },
2026-06-19T05:17:21.7081731Z         "impl": {
2026-06-19T05:17:21.7081817Z           "complete": true,
2026-06-19T05:17:21.7081904Z           "evidence": [
2026-06-19T05:17:21.7081985Z             {
2026-06-19T05:17:21.7082099Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7082185Z               "line": 76
2026-06-19T05:17:21.7082271Z             },
2026-06-19T05:17:21.7082347Z             {
2026-06-19T05:17:21.7082456Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7082544Z               "line": 212
2026-06-19T05:17:21.7082624Z             },
2026-06-19T05:17:21.7082704Z             {
2026-06-19T05:17:21.7082824Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7082906Z               "line": 69
2026-06-19T05:17:21.7082991Z             },
2026-06-19T05:17:21.7083070Z             {
2026-06-19T05:17:21.7083185Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7083266Z               "line": 133
2026-06-19T05:17:21.7083352Z             },
2026-06-19T05:17:21.7083437Z             {
2026-06-19T05:17:21.7083543Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7083624Z               "line": 243
2026-06-19T05:17:21.7083695Z             },
2026-06-19T05:17:21.7083776Z             {
2026-06-19T05:17:21.7083892Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7083968Z               "line": 406
2026-06-19T05:17:21.7084047Z             },
2026-06-19T05:17:21.7084134Z             {
2026-06-19T05:17:21.7084248Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7084329Z               "line": 534
2026-06-19T05:17:21.7084406Z             },
2026-06-19T05:17:21.7084483Z             {
2026-06-19T05:17:21.7084586Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7084672Z               "line": 548
2026-06-19T05:17:21.7084749Z             },
2026-06-19T05:17:21.7084831Z             {
2026-06-19T05:17:21.7084944Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7085040Z               "line": 603
2026-06-19T05:17:21.7085117Z             },
2026-06-19T05:17:21.7085198Z             {
2026-06-19T05:17:21.7085311Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7085391Z               "line": 634
2026-06-19T05:17:21.7085473Z             },
2026-06-19T05:17:21.7085557Z             {
2026-06-19T05:17:21.7085684Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-19T05:17:21.7085848Z               "line": 137
2026-06-19T05:17:21.7085933Z             },
2026-06-19T05:17:21.7086018Z             {
2026-06-19T05:17:21.7086143Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-19T05:17:21.7086233Z               "line": 184
2026-06-19T05:17:21.7086314Z             },
2026-06-19T05:17:21.7086396Z             {
2026-06-19T05:17:21.7086515Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7086595Z               "line": 78
2026-06-19T05:17:21.7086763Z             },
2026-06-19T05:17:21.7086839Z             {
2026-06-19T05:17:21.7086958Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7087045Z               "line": 114
2026-06-19T05:17:21.7087125Z             },
2026-06-19T05:17:21.7087206Z             {
2026-06-19T05:17:21.7087311Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7087393Z               "line": 185
2026-06-19T05:17:21.7087473Z             },
2026-06-19T05:17:21.7087563Z             {
2026-06-19T05:17:21.7087679Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7087750Z               "line": 260
2026-06-19T05:17:21.7087835Z             },
2026-06-19T05:17:21.7087912Z             {
2026-06-19T05:17:21.7088018Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7088102Z               "line": 292
2026-06-19T05:17:21.7088183Z             },
2026-06-19T05:17:21.7088273Z             {
2026-06-19T05:17:21.7088382Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7088461Z               "line": 323
2026-06-19T05:17:21.7088542Z             },
2026-06-19T05:17:21.7088614Z             {
2026-06-19T05:17:21.7088725Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7088814Z               "line": 346
2026-06-19T05:17:21.7088895Z             },
2026-06-19T05:17:21.7089077Z             {
2026-06-19T05:17:21.7089200Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7089283Z               "line": 388
2026-06-19T05:17:21.7089358Z             },
2026-06-19T05:17:21.7089439Z             {
2026-06-19T05:17:21.7089539Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7089621Z               "line": 398
2026-06-19T05:17:21.7089696Z             },
2026-06-19T05:17:21.7089768Z             {
2026-06-19T05:17:21.7089878Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7089964Z               "line": 410
2026-06-19T05:17:21.7090045Z             },
2026-06-19T05:17:21.7090126Z             {
2026-06-19T05:17:21.7090246Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7090326Z               "line": 420
2026-06-19T05:17:21.7090406Z             },
2026-06-19T05:17:21.7090488Z             {
2026-06-19T05:17:21.7090599Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7090683Z               "line": 439
2026-06-19T05:17:21.7090778Z             },
2026-06-19T05:17:21.7090849Z             {
2026-06-19T05:17:21.7090958Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7091033Z               "line": 449
2026-06-19T05:17:21.7091118Z             },
2026-06-19T05:17:21.7091195Z             {
2026-06-19T05:17:21.7091306Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7091386Z               "line": 94
2026-06-19T05:17:21.7091472Z             },
2026-06-19T05:17:21.7091558Z             {
2026-06-19T05:17:21.7091663Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7091747Z               "line": 120
2026-06-19T05:17:21.7091830Z             },
2026-06-19T05:17:21.7091911Z             {
2026-06-19T05:17:21.7092025Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7092106Z               "line": 135
2026-06-19T05:17:21.7092187Z             },
2026-06-19T05:17:21.7092268Z             {
2026-06-19T05:17:21.7092372Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7092559Z               "line": 162
2026-06-19T05:17:21.7092640Z             },
2026-06-19T05:17:21.7092716Z             {
2026-06-19T05:17:21.7092831Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7092917Z               "line": 174
2026-06-19T05:17:21.7092998Z             },
2026-06-19T05:17:21.7093065Z             {
2026-06-19T05:17:21.7096493Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7096766Z               "line": 185
2026-06-19T05:17:21.7096845Z             },
2026-06-19T05:17:21.7096932Z             {
2026-06-19T05:17:21.7097065Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7097155Z               "line": 451
2026-06-19T05:17:21.7097227Z             },
2026-06-19T05:17:21.7097305Z             {
2026-06-19T05:17:21.7097428Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7097508Z               "line": 573
2026-06-19T05:17:21.7097590Z             },
2026-06-19T05:17:21.7097667Z             {
2026-06-19T05:17:21.7097785Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7097871Z               "line": 171
2026-06-19T05:17:21.7097953Z             },
2026-06-19T05:17:21.7098028Z             {
2026-06-19T05:17:21.7098147Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.7098220Z               "line": 65
2026-06-19T05:17:21.7098301Z             },
2026-06-19T05:17:21.7098385Z             {
2026-06-19T05:17:21.7098491Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.7098569Z               "line": 71
2026-06-19T05:17:21.7098653Z             },
2026-06-19T05:17:21.7098728Z             {
2026-06-19T05:17:21.7098838Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:17:21.7098924Z               "line": 77
2026-06-19T05:17:21.7099098Z             },
2026-06-19T05:17:21.7099174Z             {
2026-06-19T05:17:21.7099299Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7099379Z               "line": 778
2026-06-19T05:17:21.7099460Z             },
2026-06-19T05:17:21.7099533Z             {
2026-06-19T05:17:21.7099628Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7099717Z               "line": 795
2026-06-19T05:17:21.7099789Z             },
2026-06-19T05:17:21.7099862Z             {
2026-06-19T05:17:21.7099966Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7100051Z               "line": 838
2026-06-19T05:17:21.7100138Z             },
2026-06-19T05:17:21.7100214Z             {
2026-06-19T05:17:21.7100319Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7100404Z               "line": 981
2026-06-19T05:17:21.7100482Z             },
2026-06-19T05:17:21.7100562Z             {
2026-06-19T05:17:21.7100662Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7100748Z               "line": 1131
2026-06-19T05:17:21.7100821Z             }
2026-06-19T05:17:21.7100905Z           ]
2026-06-19T05:17:21.7100986Z         },
2026-06-19T05:17:21.7101068Z         "int": {
2026-06-19T05:17:21.7101154Z           "complete": true,
2026-06-19T05:17:21.7101234Z           "evidence": [
2026-06-19T05:17:21.7101319Z             {
2026-06-19T05:17:21.7101448Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:17:21.7101528Z               "line": 569
2026-06-19T05:17:21.7101608Z             },
2026-06-19T05:17:21.7101678Z             {
2026-06-19T05:17:21.7101808Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-19T05:17:21.7101889Z               "line": 135
2026-06-19T05:17:21.7101970Z             }
2026-06-19T05:17:21.7102051Z           ]
2026-06-19T05:17:21.7102137Z         },
2026-06-19T05:17:21.7102223Z         "unit": {
2026-06-19T05:17:21.7102312Z           "complete": true,
2026-06-19T05:17:21.7102400Z           "evidence": [
2026-06-19T05:17:21.7102471Z             {
2026-06-19T05:17:21.7102594Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7102800Z               "line": 625
2026-06-19T05:17:21.7102881Z             },
2026-06-19T05:17:21.7102961Z             {
2026-06-19T05:17:21.7103082Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7103167Z               "line": 674
2026-06-19T05:17:21.7103248Z             },
2026-06-19T05:17:21.7103329Z             {
2026-06-19T05:17:21.7103443Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:17:21.7103630Z               "line": 696
2026-06-19T05:17:21.7103716Z             },
2026-06-19T05:17:21.7103791Z             {
2026-06-19T05:17:21.7103915Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7103988Z               "line": 513
2026-06-19T05:17:21.7104069Z             },
2026-06-19T05:17:21.7104148Z             {
2026-06-19T05:17:21.7104267Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7104348Z               "line": 638
2026-06-19T05:17:21.7104426Z             },
2026-06-19T05:17:21.7104510Z             {
2026-06-19T05:17:21.7104610Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7104697Z               "line": 675
2026-06-19T05:17:21.7104783Z             },
2026-06-19T05:17:21.7104867Z             {
2026-06-19T05:17:21.7104978Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7105064Z               "line": 947
2026-06-19T05:17:21.7105144Z             },
2026-06-19T05:17:21.7105230Z             {
2026-06-19T05:17:21.7105340Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7105426Z               "line": 969
2026-06-19T05:17:21.7105506Z             },
2026-06-19T05:17:21.7105584Z             {
2026-06-19T05:17:21.7105689Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7105779Z               "line": 986
2026-06-19T05:17:21.7105860Z             },
2026-06-19T05:17:21.7105932Z             {
2026-06-19T05:17:21.7106050Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7106136Z               "line": 1001
2026-06-19T05:17:21.7106213Z             },
2026-06-19T05:17:21.7106295Z             {
2026-06-19T05:17:21.7106398Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7106474Z               "line": 1027
2026-06-19T05:17:21.7106555Z             },
2026-06-19T05:17:21.7106636Z             {
2026-06-19T05:17:21.7106743Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:17:21.7106828Z               "line": 457
2026-06-19T05:17:21.7106910Z             },
2026-06-19T05:17:21.7106988Z             {
2026-06-19T05:17:21.7107110Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:17:21.7107192Z               "line": 338
2026-06-19T05:17:21.7107278Z             },
2026-06-19T05:17:21.7107349Z             {
2026-06-19T05:17:21.7107453Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7107536Z               "line": 10337
2026-06-19T05:17:21.7107625Z             },
2026-06-19T05:17:21.7107701Z             {
2026-06-19T05:17:21.7107812Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7107893Z               "line": 1260
2026-06-19T05:17:21.7107974Z             },
2026-06-19T05:17:21.7108054Z             {
2026-06-19T05:17:21.7108160Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-19T05:17:21.7108250Z               "line": 130
2026-06-19T05:17:21.7108327Z             }
2026-06-19T05:17:21.7108417Z           ]
2026-06-19T05:17:21.7108504Z         }
2026-06-19T05:17:21.7108579Z       }
2026-06-19T05:17:21.7108660Z     },
2026-06-19T05:17:21.7108741Z     {
2026-06-19T05:17:21.7108828Z       "id": "REQ-UPD-7",
2026-06-19T05:17:21.7110993Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-19T05:17:21.7111203Z       "requiredStages": [
2026-06-19T05:17:21.7111284Z         "impl",
2026-06-19T05:17:21.7111442Z         "unit"
2026-06-19T05:17:21.7111517Z       ],
2026-06-19T05:17:21.7111604Z       "stages": {
2026-06-19T05:17:21.7111676Z         "doc": {
2026-06-19T05:17:21.7111761Z           "complete": false,
2026-06-19T05:17:21.7111851Z           "evidence": []
2026-06-19T05:17:21.7111931Z         },
2026-06-19T05:17:21.7112013Z         "impl": {
2026-06-19T05:17:21.7112102Z           "complete": true,
2026-06-19T05:17:21.7112192Z           "evidence": [
2026-06-19T05:17:21.7112267Z             {
2026-06-19T05:17:21.7112373Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7112459Z               "line": 2502
2026-06-19T05:17:21.7112544Z             }
2026-06-19T05:17:21.7112620Z           ]
2026-06-19T05:17:21.7112702Z         },
2026-06-19T05:17:21.7112788Z         "int": {
2026-06-19T05:17:21.7112868Z           "complete": false,
2026-06-19T05:17:21.7112955Z           "evidence": []
2026-06-19T05:17:21.7113036Z         },
2026-06-19T05:17:21.7113112Z         "unit": {
2026-06-19T05:17:21.7113206Z           "complete": true,
2026-06-19T05:17:21.7113284Z           "evidence": [
2026-06-19T05:17:21.7113374Z             {
2026-06-19T05:17:21.7113474Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7113565Z               "line": 10313
2026-06-19T05:17:21.7113642Z             }
2026-06-19T05:17:21.7113717Z           ]
2026-06-19T05:17:21.7113793Z         }
2026-06-19T05:17:21.7113875Z       }
2026-06-19T05:17:21.7113957Z     },
2026-06-19T05:17:21.7114032Z     {
2026-06-19T05:17:21.7114132Z       "id": "REQ-UPD-8",
2026-06-19T05:17:21.7116568Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-19T05:17:21.7116668Z       "requiredStages": [
2026-06-19T05:17:21.7116759Z         "impl",
2026-06-19T05:17:21.7116836Z         "unit"
2026-06-19T05:17:21.7116915Z       ],
2026-06-19T05:17:21.7117000Z       "stages": {
2026-06-19T05:17:21.7117071Z         "doc": {
2026-06-19T05:17:21.7117162Z           "complete": false,
2026-06-19T05:17:21.7117242Z           "evidence": []
2026-06-19T05:17:21.7117317Z         },
2026-06-19T05:17:21.7117389Z         "impl": {
2026-06-19T05:17:21.7117475Z           "complete": true,
2026-06-19T05:17:21.7117553Z           "evidence": [
2026-06-19T05:17:21.7117641Z             {
2026-06-19T05:17:21.7117766Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7117847Z               "line": 77
2026-06-19T05:17:21.7117928Z             },
2026-06-19T05:17:21.7118009Z             {
2026-06-19T05:17:21.7118134Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7118219Z               "line": 49
2026-06-19T05:17:21.7118299Z             },
2026-06-19T05:17:21.7118382Z             {
2026-06-19T05:17:21.7118581Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7118667Z               "line": 152
2026-06-19T05:17:21.7118744Z             },
2026-06-19T05:17:21.7118825Z             {
2026-06-19T05:17:21.7118934Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7119097Z               "line": 215
2026-06-19T05:17:21.7119172Z             },
2026-06-19T05:17:21.7119253Z             {
2026-06-19T05:17:21.7119355Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7119530Z               "line": 230
2026-06-19T05:17:21.7119607Z             },
2026-06-19T05:17:21.7119684Z             {
2026-06-19T05:17:21.7119797Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7119872Z               "line": 247
2026-06-19T05:17:21.7119943Z             },
2026-06-19T05:17:21.7120015Z             {
2026-06-19T05:17:21.7120124Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7120208Z               "line": 269
2026-06-19T05:17:21.7120285Z             },
2026-06-19T05:17:21.7120352Z             {
2026-06-19T05:17:21.7120467Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7120542Z               "line": 66
2026-06-19T05:17:21.7120629Z             },
2026-06-19T05:17:21.7120700Z             {
2026-06-19T05:17:21.7120814Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7120895Z               "line": 154
2026-06-19T05:17:21.7120982Z             },
2026-06-19T05:17:21.7121062Z             {
2026-06-19T05:17:21.7121166Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7121248Z               "line": 2306
2026-06-19T05:17:21.7121330Z             },
2026-06-19T05:17:21.7121410Z             {
2026-06-19T05:17:21.7121510Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7121583Z               "line": 2369
2026-06-19T05:17:21.7121664Z             },
2026-06-19T05:17:21.7121743Z             {
2026-06-19T05:17:21.7121840Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7121921Z               "line": 2379
2026-06-19T05:17:21.7121997Z             },
2026-06-19T05:17:21.7122077Z             {
2026-06-19T05:17:21.7122173Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7122256Z               "line": 2386
2026-06-19T05:17:21.7122340Z             },
2026-06-19T05:17:21.7122420Z             {
2026-06-19T05:17:21.7122520Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7122616Z               "line": 2503
2026-06-19T05:17:21.7122699Z             },
2026-06-19T05:17:21.7122775Z             {
2026-06-19T05:17:21.7122880Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7122962Z               "line": 480
2026-06-19T05:17:21.7123042Z             },
2026-06-19T05:17:21.7123127Z             {
2026-06-19T05:17:21.7123229Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:17:21.7123324Z               "line": 494
2026-06-19T05:17:21.7123404Z             }
2026-06-19T05:17:21.7123481Z           ]
2026-06-19T05:17:21.7123549Z         },
2026-06-19T05:17:21.7123629Z         "int": {
2026-06-19T05:17:21.7123719Z           "complete": false,
2026-06-19T05:17:21.7123801Z           "evidence": []
2026-06-19T05:17:21.7123882Z         },
2026-06-19T05:17:21.7123958Z         "unit": {
2026-06-19T05:17:21.7124053Z           "complete": true,
2026-06-19T05:17:21.7124135Z           "evidence": [
2026-06-19T05:17:21.7124216Z             {
2026-06-19T05:17:21.7124330Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:17:21.7124410Z               "line": 476
2026-06-19T05:17:21.7124493Z             },
2026-06-19T05:17:21.7124568Z             {
2026-06-19T05:17:21.7124682Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:17:21.7124750Z               "line": 580
2026-06-19T05:17:21.7124832Z             },
2026-06-19T05:17:21.7124911Z             {
2026-06-19T05:17:21.7125012Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7125198Z               "line": 10315
2026-06-19T05:17:21.7125273Z             },
2026-06-19T05:17:21.7125348Z             {
2026-06-19T05:17:21.7125445Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7125522Z               "line": 10337
2026-06-19T05:17:21.7125607Z             }
2026-06-19T05:17:21.7125682Z           ]
2026-06-19T05:17:21.7125755Z         }
2026-06-19T05:17:21.7125827Z       }
2026-06-19T05:17:21.7125912Z     },
2026-06-19T05:17:21.7126060Z     {
2026-06-19T05:17:21.7126155Z       "id": "REQ-UPD-9",
2026-06-19T05:17:21.7128670Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
2026-06-19T05:17:21.7128770Z       "requiredStages": [
2026-06-19T05:17:21.7128859Z         "doc",
2026-06-19T05:17:21.7129023Z         "impl",
2026-06-19T05:17:21.7129099Z         "unit"
2026-06-19T05:17:21.7129184Z       ],
2026-06-19T05:17:21.7129266Z       "stages": {
2026-06-19T05:17:21.7129342Z         "doc": {
2026-06-19T05:17:21.7129428Z           "complete": true,
2026-06-19T05:17:21.7129508Z           "evidence": [
2026-06-19T05:17:21.7129591Z             {
2026-06-19T05:17:21.7129681Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.7129771Z               "line": 93
2026-06-19T05:17:21.7129852Z             },
2026-06-19T05:17:21.7129929Z             {
2026-06-19T05:17:21.7130033Z               "path": "docs/MANIFEST.md",
2026-06-19T05:17:21.7130124Z               "line": 240
2026-06-19T05:17:21.7130201Z             }
2026-06-19T05:17:21.7130277Z           ]
2026-06-19T05:17:21.7130362Z         },
2026-06-19T05:17:21.7130432Z         "impl": {
2026-06-19T05:17:21.7130513Z           "complete": true,
2026-06-19T05:17:21.7130599Z           "evidence": [
2026-06-19T05:17:21.7130688Z             {
2026-06-19T05:17:21.7130821Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7130902Z               "line": 128
2026-06-19T05:17:21.7130979Z             },
2026-06-19T05:17:21.7131050Z             {
2026-06-19T05:17:21.7131169Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7131256Z               "line": 533
2026-06-19T05:17:21.7131337Z             },
2026-06-19T05:17:21.7131417Z             {
2026-06-19T05:17:21.7131532Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7131613Z               "line": 415
2026-06-19T05:17:21.7131685Z             },
2026-06-19T05:17:21.7131765Z             {
2026-06-19T05:17:21.7131885Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7131965Z               "line": 461
2026-06-19T05:17:21.7132051Z             },
2026-06-19T05:17:21.7132133Z             {
2026-06-19T05:17:21.7132252Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7132328Z               "line": 869
2026-06-19T05:17:21.7132409Z             },
2026-06-19T05:17:21.7132491Z             {
2026-06-19T05:17:21.7132595Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:17:21.7132695Z               "line": 302
2026-06-19T05:17:21.7132773Z             },
2026-06-19T05:17:21.7132858Z             {
2026-06-19T05:17:21.7132957Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7133161Z               "line": 5532
2026-06-19T05:17:21.7133246Z             },
2026-06-19T05:17:21.7133312Z             {
2026-06-19T05:17:21.7133417Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7133498Z               "line": 5577
2026-06-19T05:17:21.7133584Z             },
2026-06-19T05:17:21.7133664Z             {
2026-06-19T05:17:21.7133760Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7133841Z               "line": 5714
2026-06-19T05:17:21.7134017Z             },
2026-06-19T05:17:21.7134099Z             {
2026-06-19T05:17:21.7134199Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7134293Z               "line": 5735
2026-06-19T05:17:21.7134366Z             },
2026-06-19T05:17:21.7134452Z             {
2026-06-19T05:17:21.7134552Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7134632Z               "line": 5758
2026-06-19T05:17:21.7134714Z             },
2026-06-19T05:17:21.7134795Z             {
2026-06-19T05:17:21.7134899Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7134980Z               "line": 5785
2026-06-19T05:17:21.7135063Z             }
2026-06-19T05:17:21.7135133Z           ]
2026-06-19T05:17:21.7135205Z         },
2026-06-19T05:17:21.7135286Z         "int": {
2026-06-19T05:17:21.7135378Z           "complete": false,
2026-06-19T05:17:21.7135471Z           "evidence": []
2026-06-19T05:17:21.7135548Z         },
2026-06-19T05:17:21.7135630Z         "unit": {
2026-06-19T05:17:21.7135726Z           "complete": true,
2026-06-19T05:17:21.7135814Z           "evidence": [
2026-06-19T05:17:21.7135895Z             {
2026-06-19T05:17:21.7136024Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:17:21.7136106Z               "line": 259
2026-06-19T05:17:21.7136190Z             },
2026-06-19T05:17:21.7136271Z             {
2026-06-19T05:17:21.7136392Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:17:21.7136467Z               "line": 657
2026-06-19T05:17:21.7136557Z             },
2026-06-19T05:17:21.7136635Z             {
2026-06-19T05:17:21.7136759Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:17:21.7136844Z               "line": 1048
2026-06-19T05:17:21.7136930Z             },
2026-06-19T05:17:21.7137011Z             {
2026-06-19T05:17:21.7137111Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7137206Z               "line": 7422
2026-06-19T05:17:21.7137279Z             }
2026-06-19T05:17:21.7137364Z           ]
2026-06-19T05:17:21.7137445Z         }
2026-06-19T05:17:21.7137521Z       }
2026-06-19T05:17:21.7137608Z     },
2026-06-19T05:17:21.7137688Z     {
2026-06-19T05:17:21.7137778Z       "id": "REQ-WHOAMI-1",
2026-06-19T05:17:21.7139473Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-19T05:17:21.7139583Z       "requiredStages": [
2026-06-19T05:17:21.7139664Z         "doc",
2026-06-19T05:17:21.7139739Z         "impl",
2026-06-19T05:17:21.7139821Z         "unit"
2026-06-19T05:17:21.7139902Z       ],
2026-06-19T05:17:21.7139988Z       "stages": {
2026-06-19T05:17:21.7140068Z         "doc": {
2026-06-19T05:17:21.7140156Z           "complete": true,
2026-06-19T05:17:21.7140236Z           "evidence": [
2026-06-19T05:17:21.7140316Z             {
2026-06-19T05:17:21.7140412Z               "path": "CONTEXT.md",
2026-06-19T05:17:21.7140504Z               "line": 704
2026-06-19T05:17:21.7140584Z             }
2026-06-19T05:17:21.7140665Z           ]
2026-06-19T05:17:21.7140747Z         },
2026-06-19T05:17:21.7140823Z         "impl": {
2026-06-19T05:17:21.7141007Z           "complete": true,
2026-06-19T05:17:21.7141107Z           "evidence": [
2026-06-19T05:17:21.7141192Z             {
2026-06-19T05:17:21.7141286Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7141371Z               "line": 3066
2026-06-19T05:17:21.7141444Z             },
2026-06-19T05:17:21.7141525Z             {
2026-06-19T05:17:21.7141624Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7141710Z               "line": 3094
2026-06-19T05:17:21.7141873Z             }
2026-06-19T05:17:21.7141953Z           ]
2026-06-19T05:17:21.7142034Z         },
2026-06-19T05:17:21.7142116Z         "int": {
2026-06-19T05:17:21.7142207Z           "complete": false,
2026-06-19T05:17:21.7142287Z           "evidence": []
2026-06-19T05:17:21.7142368Z         },
2026-06-19T05:17:21.7142455Z         "unit": {
2026-06-19T05:17:21.7142535Z           "complete": true,
2026-06-19T05:17:21.7142625Z           "evidence": [
2026-06-19T05:17:21.7142703Z             {
2026-06-19T05:17:21.7142817Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7142898Z               "line": 7704
2026-06-19T05:17:21.7142979Z             },
2026-06-19T05:17:21.7143056Z             {
2026-06-19T05:17:21.7143151Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:17:21.7143236Z               "line": 7757
2026-06-19T05:17:21.7143313Z             }
2026-06-19T05:17:21.7143395Z           ]
2026-06-19T05:17:21.7143475Z         }
2026-06-19T05:17:21.7143559Z       }
2026-06-19T05:17:21.7143640Z     }
2026-06-19T05:17:21.7143721Z   ],
2026-06-19T05:17:21.7143811Z   "findings": []
2026-06-19T05:17:21.7143886Z }
